RosettaCodeData/Task/Fibonacci-n-step-number-sequences/Sidef/fibonacci-n-step-number-sequences-3.sidef
2020-02-17 23:21:07 -08:00

20 lines
345 B
Text

func fibonacci_kth_order (n, k = 2) {
return 0 if (n < k-1)
var f = (1..(k+1) -> map {|j|
j < k ? 2**j : 1
})
k += 1
for i in (2*(k-1) .. n) {
f[i%k] = (2*f[(i-1)%k] - f[i%k])
}
return f[n%k]
}
for k in (2..9) {
say ("Fibonacci of k=#{k} order: ", (15+k).of { fibonacci_kth_order(_, k) })
}