51 lines
1 KiB
Text
51 lines
1 KiB
Text
# Rosetta Code problem: https://www.rosettacode.org/wiki/Fibonacci_n-step_number_sequences
|
|
# by Jjuanhdez, 06/2022
|
|
|
|
arraybase 1
|
|
print " fibonacci =>";
|
|
dim a = {1,1}
|
|
call fib (a)
|
|
print " tribonacci =>";
|
|
dim a = {1,1,2}
|
|
call fib (a)
|
|
print " tetranacci =>";
|
|
dim a = {1,1,2,4}
|
|
call fib (a)
|
|
print " pentanacci =>";
|
|
dim a = {1,1,2,4,8}
|
|
call fib (a)
|
|
print " hexanacci =>";
|
|
dim a = {1,1,2,4,8,16}
|
|
call fib (a)
|
|
print " heptanacci =>";
|
|
dim a = {1,1,2,4,8,16,32}
|
|
call fib (a)
|
|
print " octonacci =>";
|
|
dim a = {1,1,2,4,8,16,32,64}
|
|
call fib (a)
|
|
print " nonanacci =>";
|
|
dim a = {1,1,2,4,8,16,32,64,128}
|
|
call fib (a)
|
|
print " decanacci =>";
|
|
dim a = {1,1,2,4,8,16,32,64,128,256}
|
|
call fib (a)
|
|
print " lucas =>";
|
|
dim a = {2,1}
|
|
call fib (a)
|
|
end
|
|
|
|
subroutine fib (a)
|
|
dim f(24) fill 0
|
|
b = 0
|
|
for x = 1 to a[?]
|
|
b += 1
|
|
f[x] = a[x]
|
|
next x
|
|
for i = b to 13 + b
|
|
print rjust(f[i-b+1], 5);
|
|
if i <> 13 + b then print ","; else print ", ..."
|
|
for j = (i-b+1) to i
|
|
f[i+1] = f[i+1] + f[j]
|
|
next j
|
|
next i
|
|
end subroutine
|