RosettaCodeData/Task/Fibonacci-n-step-number-sequences/AWK/fibonacci-n-step-number-sequences.awk
2023-07-01 13:44:08 -04:00

30 lines
669 B
Awk

function sequence(values, howmany) {
init_length = length(values)
for (i=init_length + 1; i<=howmany; i++) {
values[i] = 0
for (j=1; j<=init_length; j++) {
values[i] += values[i-j]
}
}
result = ""
for (i in values) {
result = result values[i] " "
}
delete values
return result
}
# print some sequences
END {
a[1] = 1; a[2] = 1
print("fibonacci :\t",sequence(a, 10))
a[1] = 1; a[2] = 1; a[3] = 2
print("tribonacci :\t",sequence(a, 10))
a[1] = 1 ; a[2] = 1 ; a[3] = 2 ; a[4] = 4
print("tetrabonacci :\t",sequence(a, 10))
a[1] = 2; a[2] = 1
print("lucas :\t\t",sequence(a, 10))
}