Catalan numbers/Pascal's triangle: Difference between revisions
m
syntax highlighting fixup automation
(→{{header|F#}}: Corrected header as suggested on the Count examples/Full list/Tier 4 talk page) |
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
||
Line 17:
=={{header|11l}}==
{{trans|Python}}
<
V t = [0] * (n + 2)
t[1] = 1
Line 26:
L(j) (i + 1 .< 1).step(-1)
t[j] += t[j - 1]
print(t[i + 1] - t[i], end' ‘ ’)</
{{out}}
<pre>
Line 34:
=={{header|360 Assembly}}==
For maximum compatibility, this program uses only the basic instruction set.
<
USING CATALAN,R13,R12
SAVEAREA B STM-SAVEAREA(R15)
Line 124:
WTOBUF DC CL80' '
YREGS
END</
{{out}}
<pre style="height:20ex">00000001
Line 144:
=={{header|Action!}}==
{{libheader|Action! Tool Kit}}
<
DEFINE PTR="CARD"
Line 191:
PrintF("C(%B)=",i) PrintRE(c)
OD
RETURN</
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Catalan_numbers_Pascal's_triangle.png Screenshot from Atari 8-bit computer]
Line 216:
Uses package Pascal from the Pascal triangle solution[[http://rosettacode.org/wiki/Pascal%27s_triangle#Ada]]
<
procedure Catalan is
Line 229:
Ada.Text_IO.Put(Integer'Image(Row(I+1)-Row(I+2)));
end loop;
end Catalan;</
{{out}}
Line 237:
=={{header|ALGOL 68}}==
{{trans|C++}}
<
[ 0 : n + 1 ]INT t;
t[0] := 0;
Line 246:
FOR j FROM i+1 BY -1 TO 2 DO t[j] := t[j] + t[j-1] OD;
print( ( whole( t[i+1] - t[i], 0 ), " " ) )
OD</
{{out}}
<pre>
Line 253:
=={{header|ALGOL W}}==
<
% print the first 15 Catalan numbers from Pascal's triangle %
integer n;
Line 272:
end for_c
end
end.</
{{out}}
<pre>
Line 279:
=={{header|APL}}==
<
⍝ Based heavily on the J solution
CATALAN←{¯1↓↑-/1 ¯1↓¨(⊂⎕IO+0 0)⍉¨0 2⌽¨⊂(⎕IO-⍨⍳N){+\⍣⍺⊢⍵}⍤0 1⊢1⍴⍨N←⍵+2}
</syntaxhighlight>
{{out}}
<pre>
Line 291:
=={{header|AutoHotkey}}==
{{works with|AutoHotkey_L}}
<
//
// smgs: 20th Feb, 2014
Line 320:
}
}
MsgBox % result</
{{out|Produces}}
<pre>
Line 327:
=={{header|AWK}}==
<
# syntax: GAWK -f CATALAN_NUMBERS_PASCALS_TRIANGLE.AWK
# converted from C
Line 344:
exit(0)
}
</syntaxhighlight>
{{out}}
<pre>
Line 351:
=={{header|Batch File}}==
<
setlocal ENABLEDELAYEDEXPANSION
set n=15
Line 372:
)
)
pause</
{{Out}}
<pre style="height:20ex">1
Line 391:
=={{header|C}}==
<syntaxhighlight lang=c>
//This code implements the print of 15 first Catalan's Numbers
//Formula used:
Line 437:
return 0;
}
</syntaxhighlight>
{{out}}
Line 446:
=={{header|C sharp|C#}}==
{{trans|C++}}
<
int n = 15;
List<int> t = new List<int>() { 0, 1 };
Line 456:
Console.Write(((i == 1) ? "" : ", ") + (t[i + 1] - t[i]));
}
</syntaxhighlight>
{{out|Produces}}
<pre>
Line 463:
=={{header|C++}}==
<
//
// Nigel Galloway: June 9th., 2012
Line 478:
}
return 0;
}</
{{out|Produces}}
<pre>
Line 486:
=={{header|Common Lisp}}==
<
"Return the n-th Catalan number"
(if (<= n 1) 1
Line 495:
(dotimes (n 15)
(print (catalan (1+ n))) )</
{{out}}
Line 517:
=={{header|D}}==
{{trans|C++}}
<
import std.stdio;
Line 532:
write(t[i + 1] - t[i], ' ');
}
}</
{{out}}
<pre>1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 </pre>
Line 538:
See [https://rosettacode.org/wiki/Catalan_numbers/Pascal%27s_triangle#Pascal Pascal].
=={{header|EchoLisp}}==
<
(define dim 100)
(define-syntax-rule (Tidx i j) (+ i (* dim j)))
Line 554:
(remember 'T #(1))
</syntaxhighlight>
{{out}}
<
;; take elements on diagonal = Catalan numbers
(for ((i (in-range 0 16))) (write (T (Tidx i i))))
→ 1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845
</syntaxhighlight>
=={{header|EDSAC order code}}==
Rather than store a triangular array, this solution stores the right-hand half of the current row and updates it in place. It uses the third method in the link, e.g. once we have the half row (70, 56, 28, 8, 1), the Catalan number 42 appears as 70 - 28.
<
[Catalan numbers from Pascal triangle, Rosetta Code website.
EDSAC program, Initial Orders 2]
Line 625:
[75] O4@ ZF [flush printer buffer; stop]
E9Z PF [define entry point; enter with acc = 0]
</syntaxhighlight>
{{out}}
<pre>
Line 646:
=={{header|Elixir}}==
<
def numbers(num) do
{result,_} = Enum.reduce(1..num, {[],{0,1}}, fn i,{list,t0} ->
Line 660:
end
IO.inspect Catalan.numbers(15)</
{{out}}
Line 668:
=={{header|Erlang}}==
<
-module(catalin).
-compile(export_all).
Line 686:
main()->
Ans=catl(1,2).
</syntaxhighlight>
=={{header|ERRE}}==
<
PROGRAM CATALAN
Line 728:
END FOR
END PROGRAM
</syntaxhighlight>
{{out}}
<pre>
Line 749:
=={{header|F_Sharp|F#}}==
<
let mutable nm=uint64(1)
let mutable dm=uint64(1)
Line 765:
if(i<>15) then
printf ", "
</syntaxhighlight>
=={{header|Factor}}==
<
IN: rosetta-code.catalan-pascal
Line 781:
[ dup midpoint@ dup 1 + 2array swap nths first2 - ] if
pprint bl
] each drop</
{{out}}
<pre>
Line 788:
=={{header|FreeBASIC}}==
<
' compile with: fbc -s console
Line 843:
Print : Print "hit any key to end program"
Sleep
End</
{{out}}
<pre>The first 15 Catalan numbers are
Line 865:
=={{header|Go}}==
{{trans|C++}}
<
import "fmt"
Line 882:
fmt.Printf("%2d : %d\n", i, t[i+1]-t[i])
}
}</
{{out}}
Line 905:
=={{header|Groovy}}==
{{trans|C}}
<
class Catalan
{
Line 929:
}
}
</
{{out}}
<pre>
Line 938:
As required by the task this implementation extracts the Catalan numbers from Pascal's triangle, rather
than calculating them directly. Also, note that it (correctly) produces [1, 1] as the first two numbers.
<
-- Pascal's triangle.
Line 956:
main = do
ns <- fmap (map read) getArgs :: IO [Int]
mapM_ (print . flip take catalan) ns</
{{out}}
Line 969:
that aren't used.
<
procedure main(A)
limit := (integer(A[1])|15)+1
every write(right(binocoef(i := 2*seq(0)\limit,i/2)-binocoef(i,i/2+1),30))
end</
Sample run:
Line 999:
=={{header|J}}==
<
{{out|Example use}}
<
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845
</
A structured derivation of Catalan follows:
<
( PascalTriangle=. i. ((+/\@]^:[)) #&1 ) 5
1 1 1 1 1
Line 1,023:
Catalan
}:@:(}.@:((<0 1)&|:) - }:@:((<0 1)&|:@:(2&|.)))@:(i. +/\@]^:[ #&1)@:(2&+)</
=={{header|Java}}==
{{trans|C++}}
<
public static void main(String[] args) {
int N = 15;
Line 1,046:
}
}
}</
<pre>1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845</pre>
Line 1,054:
Iteration
{{trans|C++}}
<
for (var t = [0, 1], i = 1; i <= n; i++) {
for (var j = i; j > 1; j--) t[j] += t[j - 1];
Line 1,060:
for (var j = i + 1; j > 1; j--) t[j] += t[j - 1];
document.write(i == 1 ? '' : ', ', t[i + 1] - t[i]);
}</
{{out}}
<pre>
Line 1,070:
{{Trans|Haskell}}
<
'use strict';
Line 1,133:
return tail(catalanSeries(16));
})();</
{{Out}}
<
=={{header|jq}}==
Line 1,143:
''Warning'': jq uses IEEE 754 64-bit arithmetic,
so the algorithm used here for Catalan numbers loses precision for n > 30 and fails completely for n > 510.
<
if k > n / 2 then binomial(n; n-k)
else reduce range(1; k+1) as $i (1; . * (n - $i + 1) / $i)
Line 1,149:
# Direct (naive) computation using two numbers in Pascal's triangle:
def catalan_by_pascal: . as $n | binomial(2*$n; $n) - binomial(2*$n; $n-1);</
'''Example''':
(range(0;16), 30, 31, 510, 511) | [., catalan_by_pascal]
{{Out}}
<
[0,0]
[1,1]
Line 1,174:
[31,14544636039226880]
[510,5.491717746183512e+302]
[511,null]</
=={{header|Julia}}==
{{trans|Matlab}}
<
function pascal(n::Int)
Line 1,193:
end
@show catalan_num(15)</
{{out}}
Line 1,199:
=={{header|Kotlin}}==
<
import java.math.BigInteger
Line 1,223:
val n = 15
catalanFromPascal(n * 2)
}</
{{out}}
Line 1,247:
For each line of odd-numbered length from Pascal's triangle, print the middle number minus the one immediately to its right.
This solution is heavily based on the Lua code to generate Pascal's triangle from the page for that task.
<
local ret = {}
t[0], t[#t + 1] = 0, 0
Line 1,263:
end
catalans(15)</
{{out}}
<pre>1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440</pre>
Line 1,277:
We use & to pass by reference, here anarray, to sub, but because a sub can see anything in module we can change array name inside sub to same as triangle and we can remove arguments (including size).
<
Module CatalanNumbers {
Def Integer count, t_row, size=31
Line 1,311:
}
CatalanNumbers
</syntaxhighlight>
{{out}}
<pre>
Line 1,333:
=={{header|Maple}}==
<
local i,a:=[1],C:=[1];
for i to n do
Line 1,344:
catalan(10);
# [1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796]</
=={{header|Mathematica}} / {{header|Wolfram Language}}==
This builds the entire Pascal triangle that's needed and holds it in memory. Very inefficienct, but seems to be what is asked in the problem.
<
output = ConstantArray[1, Length[lastrow] + 1];
Do[
Line 1,363:
]
(* testing *)
catalannumbers[15]</
{{out}}
<pre>{1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845}</pre>
Line 1,369:
=={{header|MATLAB}} / {{header|Octave}}==
<
p = pascal(n + 2);
p(n + 4 : n + 3 : end - 1)' - diag(p, 2)</
{{Out}}
<pre>ans =
Line 1,392:
=={{header|Nim}}==
{{trans|Python}}
<
var t = newSeq[int](n + 2)
Line 1,401:
for j in countdown(i+1, 1): t[j] += t[j-1]
stdout.write t[i+1] - t[i], " "
stdout.write '\n'</
{{Out}}
<pre>1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 </pre>
=={{header|OCaml}}==
<
let catalan : int ref = ref 0 in
Printf.printf "%d ," 1 ;
Line 1,419:
print_int (!catalan); print_string "," ;
done;;
</syntaxhighlight>
{{out}}
<pre>
Line 1,428:
=={{header|Oforth}}==
<
: pascal( n -- [] )
Line 1,434:
: catalan( n -- m )
n 2 * pascal at( n 1+ ) n 1+ / ;</
{{out}}
Line 1,443:
=={{header|PARI/GP}}==
<
{{out}}
<pre>%1 = [1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845]</pre>
=={{header|Pascal}}==
<
Program CatalanNumbers
type
Line 1,484:
For i := 1 to L do
Writeln(i:3,Catalan[i]:20);
end.</
<pre> 1 1
2 2
Line 1,505:
=={{header|Perl}}==
{{trans|C++}}
<
my @t = (0, 1);
for(my $i = 1; $i <= N; $i++) {
Line 1,512:
for(my $j = $i+1; $j>1; $j--) { $t[$j] += $t[$j-1] }
print $t[$i+1] - $t[$i], " ";
}</
{{out}}
<pre>1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845</pre>
Line 1,518:
After the 28th Catalan number, this overflows 64-bit integers. We could add <tt>use bigint;</tt> <tt>use Math::GMP ":constant";</tt> to make it work, albeit not at a fast pace. However we can use a module to do it much faster:
{{libheader|ntheory}}
<
print join(" ", map { binomial( 2*$_, $_) / ($_+1) } 1 .. 1000), "\n";</
The <tt>Math::Pari</tt> module also has a binomial, but isn't as fast and overflows its stack after 3400.
Line 1,525:
=={{header|Phix}}==
Calculates the minimum pascal triangle in minimum memory. Inspired by the comments in, but not the code of the FreeBasic example
<!--<
<span style="color: #008080;">constant</span> <span style="color: #000000;">N</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">15</span> <span style="color: #000080;font-style:italic;">-- accurate to 30, nan/inf for anything over 514 (gmp version is below).</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">catalan</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{},</span> <span style="color: #000080;font-style:italic;">-- (>=1 only)</span>
Line 1,540:
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #0000FF;">?</span><span style="color: #000000;">catalan</span>
<!--</
{{out}}
<pre>
Line 1,546:
</pre>
Explanatory comments to accompany the above
<
--' 1 1 1 1 1 1
--' 1 2 3 4 5 6
Line 1,578:
-- 10 15 21
-- 35 56
-- 126 (unused)</
=== gmp version ===
{{libheader|Phix/mpfr}}
<!--<
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">include</span> <span style="color: #000000;">builtins</span><span style="color: #0000FF;">\</span><span style="color: #004080;">mpfr</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
Line 1,604:
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%d: %s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">100</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">shorten</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">mpz_get_str</span><span style="color: #0000FF;">(</span><span style="color: #000000;">catalanB</span><span style="color: #0000FF;">(</span><span style="color: #000000;">100</span><span style="color: #0000FF;">)))})</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%d: %s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">250</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">shorten</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">mpz_get_str</span><span style="color: #0000FF;">(</span><span style="color: #000000;">catalanB</span><span style="color: #0000FF;">(</span><span style="color: #000000;">250</span><span style="color: #0000FF;">)))})</span>
<!--</
{{out}}
<pre>
Line 1,619:
=={{header|PicoLisp}}==
<
(let f
'((N)
Line 1,632:
(bino (* 2 N) N)
(bino (* 2 N) (inc N)) ) ) )
(bye)</
=={{header|PureBasic}}==
{{trans|C}}
<
Declare catalan()
Line 1,661:
Print(Str(cat)+" ")
Next
EndProcedure</
{{out}}
<pre>
Line 1,669:
===Procedural===
{{trans|C++}}
<
>>> t = [0] * (n + 2)
>>> t[1] = 1
Line 1,680:
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845
>>> </
{{Works with|Python|2.7}}
<
nm = dm = 1
for k in range(2, n+1):
Line 1,691:
print [catalan_number(n) for n in range(1, 16)]
[1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845]</
===Composition of pure functions===
Line 1,700:
{{Trans|Haskell}}
{{Works with|Python|3.7}}
<
from itertools import (islice)
Line 1,833:
# MAIN ---
if __name__ == '__main__':
main()</
{{Out}}
<pre>[1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845]</pre>
Line 1,839:
=={{header|Quackery}}==
<
witheach
[ tuck +
Line 1,853:
drop ] is catalan ( n --> )
15 catalan</
{{out}}
Line 1,860:
=={{header|Racket}}==
<
#lang racket
Line 1,872:
;; -> '(1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900
;; 2674440 9694845)
</syntaxhighlight>
=={{header|Raku}}==
(formerly Perl 6)
{{works with|Rakudo|2015.12}}
<syntaxhighlight lang=raku
constant @catalan = gather for 2, 4 ... * -> $ix {
Line 1,885:
}
.say for @catalan[^20];</
{{out}}
<pre>1
Line 1,911:
===explicit subscripts===
All of the REXX program examples can handle arbitrary large numbers.
<
parse arg N . /*Obtain the optional argument from CL.*/
if N=='' | N=="," then N=15 /*Not specified? Then use the default.*/
Line 1,921:
@.ip=@.i; do k=ip by -1 for N; km=k-1; @.k=@.k+@.km; end /*k*/
say @.ip - @.i /*display the Ith Catalan number. */
end /*i*/ /*stick a fork in it, we're all done. */</
'''output''' when using the default input:
<pre>
Line 1,942:
===implicit subscripts===
<
parse arg N . /*Obtain the optional argument from CL.*/
if N=='' | N=="," then N=15 /*Not specified? Then use the default.*/
Line 1,954:
exit /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
@: parse arg !; return @.! /*return the value of @.[arg(1)] */</
'''output''' is the same as the 1<sup>st</sup> version.
===using binomial coefficients===
<
parse arg N . /*Obtain the optional argument from CL.*/
if N=='' | N=="," then N=15 /*Not specified? Then use the default.*/
Line 1,970:
/*──────────────────────────────────────────────────────────────────────────────────────*/
comb: procedure; parse arg x,y; if x=y then return 1; if y>x then return 0
if x-y<y then y=x-y; _=1; do j=x-y+1 to x; _=_*j; end; return _/!(y)</
'''output''' is the same as the 1<sup>st</sup> version.
===binomial coefficients, memoized===
This REXX version uses memoization for the calculation of factorials.
<
parse arg N . /*Obtain the optional argument from CL.*/
if N=='' | N=="," then N=15 /*Not specified? Then use the default.*/
Line 1,989:
/*──────────────────────────────────────────────────────────────────────────────────────*/
comb: procedure expose !.; parse arg x,y; if x=y then return 1; if y>x then return 0
if x-y<y then y=x-y; _=1; do j=x-y+1 to x; _=_*j; end; return _/!(y)</
'''output''' is the same as the 1<sup>st</sup> version. <br><br>
=={{header|Ring}}==
<
n=15
cat = list(n+2)
Line 2,007:
see "" + (cat[i+1]-cat[i]) + " "
next
</syntaxhighlight>
Output:
<pre>
Line 2,014:
=={{header|Ruby}}==
<
t = [0, 1] #grows as needed
(1..num).map do |i|
Line 2,024:
end
p catalan(15)</
{{out}}
<pre>
Line 2,031:
=={{header|Run BASIC}}==
<
dim t(n+2)
t(1) = 1
Line 2,039:
for j = i+1 to 1 step -1: t(j) = t(j) + t(j-1 : next j
print t(i+1) - t(i);" ";
next i</
{{out}}
<pre>1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 </pre>
=={{header|Rust}}==
<
fn main()
Line 2,073:
}
}
</syntaxhighlight>
{{out}}
<pre>1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 </pre>
=={{header|Scala}}==
<
if (n <= 1) 1
else (0 until n).map(i => catalan(i) * catalan(n - i - 1)).sum
(1 to 15).map(catalan(_))</
{{Out}}See it in running in your browser by [https://scastie.scala-lang.org/2ybpRZxCTOyrx3mIy8yIDw Scastie (JVM)].
=={{header|Scilab}}==
<syntaxhighlight lang=text>n=15
t=zeros(1,n+2)
t(1)=1
Line 2,098:
end
disp(t(i+1)-t(i))
end</
{{out}}
<pre style="height:20ex"> 1.
Line 2,117:
=={{header|Seed7}}==
<
const proc: main is func
Line 2,137:
end for;
writeln;
end func;</
{{out}}
Line 2,146:
=={{header|Sidef}}==
{{trans|Ruby}}
<
var t = [0, 1]
(1..num).map { |i|
Line 2,156:
}
say catalan(15).join(' ')</
{{out}}
<pre>1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845</pre>
=={{header|smart BASIC}}==
<
x = 15
DIM t(x+2)
Line 2,174:
NEXT m
PRINT n,"#######":t(n+1) - t(n)
NEXT n</
=={{header|Tcl}}==
<
set result {}
array set t {0 0 1 1}
Line 2,189:
}
puts [catalan 15]</
{{out}}
<pre>1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845</pre>
=={{header|TI-83 BASIC}}==
<
15→N
seq(0,I,1,N+2)→L1
Line 2,207:
End
Disp L1(I+1)-L1(I)
End</
{{out}}
<pre> 1
Line 2,228:
=={{header|Vala}}==
{{trans|C++}}
<
const int N = 15;
uint64[] t = {0, 1};
Line 2,238:
}
print("\n");
}</
{{out}}
Line 2,247:
=={{header|VBScript}}==
To run in console mode with cscript.
<
if Wscript.arguments.count=1 then
n=Wscript.arguments.item(0)
Line 2,266:
next 'j
Wscript.echo t(i+1)-t(i)
next 'i</
=={{header|Visual Basic}}==
{{trans|Rexx}}
{{works with|Visual Basic|VB6 Standard}}
<syntaxhighlight lang=vb>
Sub catalan()
Const n = 15
Line 2,288:
Next i
End Sub 'catalan
</syntaxhighlight>
{{Out}}
<pre style="height:20ex">
Line 2,310:
=={{header|Wren}}==
{{trans|C++}}
<
var t = List.filled(n+2, 0)
t[1] = 1
Line 2,319:
System.write("%(t[i+1]-t[i]) ")
}
System.print()</
{{out}}
Line 2,328:
=={{header|Zig}}==
Uses comptime functionality to compile Pascal's triangle into the object code, then at runtime, it's simply a table lookup. (uses code from AKS primality task.)
<
const std = @import("std");
const stdout = std.io.getStdOut().outStream();
Line 2,371:
break :build coefficients;
};
</syntaxhighlight>
{{Out}}
<pre>
Line 2,393:
=={{header|zkl}}==
{{trans|PARI/GP}} using binomial coefficients.
<
(1).pump(15,List,fcn(n){ binomial(2*n,n)-binomial(2*n,n+1) })</
{{out}}
<pre>
Line 2,402:
=={{header|ZX Spectrum Basic}}==
{{trans|C++}}
<
20 DIM t(N+2)
30 LET t(2)=1
Line 2,410:
70 FOR j=i+1 TO 2 STEP -1: LET t(j)=t(j)+t(j-1): NEXT j
80 PRINT t(i+1)-t(i);" ";
90 NEXT i</
|