33 lines
1.1 KiB
Plaintext
33 lines
1.1 KiB
Plaintext
local fn LeoFiboNumbers( number as long, l0 as long, l1 as long, sum as long ) as CFArrayRef
|
|
long i, tmp
|
|
CFMutableArrayRef mutArr = fn MutableArrayWithCapacity(0)
|
|
|
|
for i = 1 to number
|
|
if i = 1
|
|
MutableArrayAddObject( mutArr, fn StringWithFormat( @"%ld", l0 ) )
|
|
else
|
|
if i = 2
|
|
MutableArrayAddObject( mutArr, fn StringWithFormat( @"%ld", l1 ) )
|
|
else
|
|
MutableArrayAddObject( mutArr, fn StringWithFormat( @"%ld", l0 + l1 + sum ) )
|
|
tmp = L0 : l0 = l1 : l1 = tmp + l1 + sum
|
|
end if
|
|
end if
|
|
next
|
|
end fn = mutArr
|
|
|
|
void local fn CompareResults( number as long )
|
|
CFArrayRef leonardoArr = fn LeoFiboNumbers( number, 1, 1, 1 )
|
|
CFArrayRef fibonacciArr = fn LeoFiboNumbers( number, 0, 1, 0 )
|
|
long i, count = fn ArrayCount( leonardoArr )
|
|
|
|
printf @"First %ld numbers of:\n%8s%11s", number, fn StringUTF8String( @"Leonardo" ), fn StringUTF8String( @"Fibonacci" )
|
|
for i = 0 to count - 1
|
|
printf @"%8s%11s", fn StringUTF8String( leonardoArr[i] ), fn StringUTF8String( fibonacciArr[i] )
|
|
next
|
|
end fn
|
|
|
|
fn CompareResults( 35 )
|
|
|
|
HandleEvents
|