fork download
  1. #!/usr/bin/perl
  2. # 自然数nのヤング図形を出力する(リスト処理版)
  3. use v5.16;
  4. my $n = 8; # 分割する自然数を設定
  5.  
  6. sub d {
  7. my ($i, $j) = @_;
  8. map{[$i-$_, $_]} $j..$i>>1;
  9. }
  10.  
  11. my @a = d($n, 1);
  12. for (@a) {
  13. my @r = @$_;
  14. push @a, map{[@$_, @r[1..$#r]]} d(@r[0, 1]);
  15. }
  16.  
  17. for ([$n], @a) {
  18. say "$_: " . '[]' x $_ for sort {$b <=> $a} @$_;
  19. say '--------------------------------';
  20. }
Success #stdin #stdout 0s 18256KB
stdin
Standard input is empty
stdout
8: [][][][][][][][]
--------------------------------
7: [][][][][][][]
1: []
--------------------------------
6: [][][][][][]
2: [][]
--------------------------------
5: [][][][][]
3: [][][]
--------------------------------
4: [][][][]
4: [][][][]
--------------------------------
6: [][][][][][]
1: []
1: []
--------------------------------
5: [][][][][]
2: [][]
1: []
--------------------------------
4: [][][][]
3: [][][]
1: []
--------------------------------
4: [][][][]
2: [][]
2: [][]
--------------------------------
3: [][][]
3: [][][]
2: [][]
--------------------------------
5: [][][][][]
1: []
1: []
1: []
--------------------------------
4: [][][][]
2: [][]
1: []
1: []
--------------------------------
3: [][][]
3: [][][]
1: []
1: []
--------------------------------
3: [][][]
2: [][]
2: [][]
1: []
--------------------------------
2: [][]
2: [][]
2: [][]
2: [][]
--------------------------------
4: [][][][]
1: []
1: []
1: []
1: []
--------------------------------
3: [][][]
2: [][]
1: []
1: []
1: []
--------------------------------
2: [][]
2: [][]
2: [][]
1: []
1: []
--------------------------------
3: [][][]
1: []
1: []
1: []
1: []
1: []
--------------------------------
2: [][]
2: [][]
1: []
1: []
1: []
1: []
--------------------------------
2: [][]
1: []
1: []
1: []
1: []
1: []
1: []
--------------------------------
1: []
1: []
1: []
1: []
1: []
1: []
1: []
1: []
--------------------------------