26 lines
1.5 KiB
Text
26 lines
1.5 KiB
Text
include "NSLog.incl"
|
|
|
|
CFStringRef local fn FibonacciSequences( type as CFStringRef, startSequence as CFArrayRef, count as NSInteger )
|
|
CFMutableArrayRef result = fn MutableArrayWithArray( startSequence )
|
|
NSInteger n = fn ArrayCount( startSequence )
|
|
|
|
while ( fn ArrayCount( result ) < count )
|
|
CFArrayRef lastNElements = fn ArraySubarrayWithRange( result, fn RangeMake( fn ArrayCount( result ) - n, n ) )
|
|
CFNumberRef sumNumber = (CFNumberRef)fn ObjectValueForKeyPath( lastNElements, @"@sum.self" )
|
|
NSInteger sum = fn NumberIntegerValue( sumNumber )
|
|
MutableArrayAddObject( result, @(sum) )
|
|
wend
|
|
return fn StringWithFormat( @"%10s: [%@]", fn StringUTF8String( type ), fn ArrayComponentsJoinedByString( result, @", " ) )
|
|
end fn = NULL
|
|
|
|
NSLog( @"%@", fn FibonacciSequences( @"lucas", @[@1,@1], 15 ) )
|
|
NSLog( @"%@", fn FibonacciSequences( @"tribonacci", @[@1,@1,@2], 15 ) )
|
|
NSLog( @"%@", fn FibonacciSequences( @"tetranacci", @[@1,@1,@2,@4], 15 ) )
|
|
NSLog( @"%@", fn FibonacciSequences( @"pentanacci", @[@1,@1,@2,@4,@8], 15 ) )
|
|
NSLog( @"%@", fn FibonacciSequences( @"hexanacci", @[@1,@1,@2,@4,@8,@16], 15 ) )
|
|
NSLog( @"%@", fn FibonacciSequences( @"heptanacci", @[@1,@1,@2,@4,@8,@16,@32], 15 ) )
|
|
NSLog( @"%@", fn FibonacciSequences( @"octonacci", @[@1,@1,@2,@4,@8,@16,@32,@64], 15 ) )
|
|
NSLog( @"%@", fn FibonacciSequences( @"nonanacci", @[@1,@1,@2,@4,@8,@16,@32,@64,@128], 15 ) )
|
|
NSLog( @"%@", fn FibonacciSequences( @"decanacci", @[@1,@1,@2,@4,@8,@16,@32,@64,@128,@256], 15 ) )
|
|
|
|
HandleEvents
|