aboutsummaryrefslogtreecommitdiff
path: root/challenge-108/abigail/awk/ch-2.awk
blob: 96344e739e9903a12dcb02a506271c6ef200e2af (plain)
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
#!/usr/bin/awk

#
# See ../README.md
#

#
# Run as: awk -f ch-2.awk [plain | compute]
#

BEGIN {
    COUNT = 10
    if (!ARGV [1] || ARGV [1] != "compute") {
        printf "%s\n", "1, 1, 2, 5, 15, 52, 203, 877, 4140, 21147"
    }
    else {
        bell [1, 1] = 1
        for (x = 2; x < COUNT; x ++) {
            bell [x, 1] = bell [x - 1, x - 1]
            for (y = 2; y <= x; y ++) {
                bell [x, y] = bell [x, y - 1] + bell [x - 1, y - 1]
            }
        }
        printf "1"
        for (x = 1; x < COUNT; x ++) {
            printf ", %d", bell [x, x]
        }
        printf "\n"
    }
    delete ARGV
}