31 lines
550 B
Text
31 lines
550 B
Text
import util.TextTable
|
|
native scala.collection.mutable.Queue
|
|
|
|
def fibLike( init ) =
|
|
q = Queue()
|
|
|
|
for i <- init do q.enqueue( i )
|
|
|
|
def fib =
|
|
q.enqueue( sum(q) )
|
|
q.dequeue() # fib()
|
|
|
|
0 # fib()
|
|
|
|
def fibN( n ) = fibLike( [1] + [2^i | i <- 0:n-1] )
|
|
|
|
val lucas = fibLike( [2, 1] )
|
|
|
|
t = TextTable()
|
|
t.header( 'k', 'Fibonacci', 'Tribonacci', 'Tetranacci', 'Lucas' )
|
|
t.line()
|
|
|
|
for i <- 1..5
|
|
t.rightAlignment( i )
|
|
|
|
seqs = (fibN(2), fibN(3), fibN(4), lucas)
|
|
|
|
for k <- 1..10
|
|
t.row( ([k] + [seqs(i)(k) | i <- 0:4]).toIndexedSeq() )
|
|
|
|
print( t )
|