This comment is reply for 4523 minke: (高さ) × (□の総数) × (その高...(自然数の分割(別表現)). Go to thread root.
minke #4524(2007/11/30 15:55 GMT) [ C ] Rating1/1=1.00
テーブルとか要らなかったですねorz
ちなみに実行時間の99%はファイル書き込み時間でした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#include <stdio.h> #include <stdlib.h> #define MIN(a,b) ((a)<(b) ? (a) : (b)) #define N 256 int seq[N]; int height; void print_young(int d, int n, int ceil) { int i,j; int upper, lower; if (d > 0) { upper = n - d + 1; lower = (n-1) / d + 1; for (i = MIN(ceil, upper); i >= lower; i--) { seq[height-d] = i; print_young(d-1, n-i, i); } } else { for (i = 0; i < height; i++) { for (j = 0; j < seq[i]; j++) printf("□"); putchar('\n'); } putchar('\n'); } } int main(int argc, char **argv) { int n = (argc >= 2) ? atoi(argv[1]) : 50; for (height = 1; height <= n; height++) { print_young(height, n, n); } return 0; }
Rating1/1=1.00-0+
[ reply ]
minke
#4524()
[
C
]
Rating1/1=1.00
テーブルとか要らなかったですねorz
ちなみに実行時間の99%はファイル書き込み時間でした。
Rating1/1=1.00-0+