Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
47
Task/Catalan-numbers/FutureBasic/catalan-numbers.basic
Normal file
47
Task/Catalan-numbers/FutureBasic/catalan-numbers.basic
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
include "NSLog.incl"
|
||||
|
||||
local fn Factorial( n as NSInteger ) as UInt64
|
||||
UInt64 sum = 0
|
||||
|
||||
if n = 0 then sum = 1 : exit fn
|
||||
sum = n * fn Factorial( n - 1 )
|
||||
end fn = sum
|
||||
|
||||
local fn Catalan1( n as NSInteger ) as UInt64
|
||||
UInt64 product = 1, result
|
||||
NSUInteger i
|
||||
|
||||
for i = n + 2 to 2 * n
|
||||
product = product * i
|
||||
next
|
||||
result = product / fn Factorial( n )
|
||||
end fn = result
|
||||
|
||||
local fn Catalan2( n as NSInteger ) as UInt64
|
||||
UInt64 sum = 0
|
||||
NSUInteger i
|
||||
|
||||
if n = 0 then sum = 1 : exit fn
|
||||
for i = 0 to n - 1
|
||||
sum += fn Catalan2(i) * fn Catalan2( n - 1 - i )
|
||||
next
|
||||
end fn = sum
|
||||
|
||||
local fn Catalan3( n as NSInteger ) as UInt64
|
||||
UInt64 result
|
||||
|
||||
if n = 0 then result = 1 : exit fn
|
||||
result = fn Catalan3( n - 1 ) * 2 * ( 2 * n - 1 ) / ( n + 1 )
|
||||
end fn = result
|
||||
|
||||
NSUInteger i
|
||||
|
||||
for i = 0 to 19
|
||||
if( i < 16 )
|
||||
NSLog( @"%3d.\t\t%7llu\t\t%12llu\t\t%12llu", i, fn Catalan1( i ), fn Catalan2( i ), fn Catalan3( i ) )
|
||||
else
|
||||
NSLog( @"%3d.\t\t%@\t\t%12llu\t\t%12llu", i, @"[-err-]", fn Catalan2( i ), fn Catalan3( i ) )
|
||||
end if
|
||||
next
|
||||
|
||||
HandleEvents
|
||||
Loading…
Add table
Add a link
Reference in a new issue