RosettaCodeData/Task/Bell-numbers/AWK/bell-numbers.awk
2026-04-30 12:34:36 -04:00

23 lines
636 B
Awk

# syntax: GAWK --bignum -f BELL_NUMBERS.AWK
BEGIN {
arr[0,0] = 1
printf(" 0: %10d\n",arr[0,0])
printf(" 1: %10d\n",arr[0,0])
for (i=1; i<50; i++) {
arr[i,0] = arr[i-1,i-1]
for (j=1; j<=i; j++) {
arr[i,j] = arr[i,j-1] + arr[i-1,j-1]
bt[i] = sprintf("%s%s ",bt[i],arr[i-1,j-1]) # build Bell's triangle
}
if (i <= 13) {
printf("%2d: %10d\n",i+1,arr[i,i])
}
if (i == 49) {
printf("%2d: %d (%d digits)\n\n",i+1,arr[i,i],length(arr[i,i]))
}
}
for (i=1; i<=10; i++) { # show Bell's triangle
printf("%2d: %s\n",i,bt[i])
}
exit(0)
}