9 billion names of God the integer

var cache = [[1]]
 
func cumu (n) {
    for l (cache.len .. n) {
        var r = [0]
        for i (1..l) {
            r << (r[-1] + cache[l-i][min(i, l-i)])
        }
        cache << r
    }
    cache[n]
}
 
func row (n) {
    var r = cumu(n)
    n.of {|i| r[i+1] - r[i] }
}
 
say "rows:"
for i (1..15) {
    "%2s: %s\n".printf(i, row(i))
}
 
say "\nsums:"
 
for i in [23, 123, 1234, 12345] {
    "%2s : %4s\n".printf(i, cumu(i)[-1])
}

Output:

Last updated

Was this helpful?