Catalan numbers: Difference between revisions

Updated to work with Nim 1.4. Removed "binomial" procedure to use the "binom" proc of module "math"? Use now "strformat" for formatting.
(add tinybasic)
(Updated to work with Nim 1.4. Removed "binomial" procedure to use the "binom" proc of module "math"? Use now "strformat" for formatting.)
Line 2,977:
 
=={{header|Nim}}==
<lang nim>import strutilsmath
import strformat
 
proc binomialcatalan1(m, n: int): autoint =
binomialbinom(2 * n, n) div (n + 1)
result = 1
var
d = m - n
n = n
m = m
if d > n:
n = d
 
proc catalan2(n: int): autoint =
while m > n:
result *= m
dec m
while d > 1 and (result mod d) == 0:
result = result div d
dec d
 
proc catalan1(n): auto =
binomial(2 * n, n) div (n + 1)
 
proc catalan2(n): auto =
if n == 0:
result =return 1
for i in 0 .. <n:
result += catalan2(i) * catalan2(n - 1 - i)
 
proc catalan3(n: int): int =
if n > 0: 2 * (2 * n - 1) * catalan3(n - 1) div (1 + n)
else: 1
 
for i in 0..15:
echo align($&"{i, :7),} " ", align(${catalan1(i), :7),} " ", align(${catalan2(i), :7),} " ", align(${catalan3(i), :7)}"</lang>
 
Output:
{{out}}
<pre> 0 1 1 1
1 1 1 1
Anonymous user