Bell numbers: Difference between revisions
Content added Content deleted
(Replaced "shallowCopy" with "move".) |
(→{{header|Modula-2}}: Added a solution.) |
||
Line 2,481: | Line 2,481: | ||
36401, 43833, 52922, 64077, 77821, 94828, 115975}} |
36401, 43833, 52922, 64077, 77821, 94828, 115975}} |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
=={{header|Modula-2}}== |
|||
{{trans|QuickBASIC}} |
|||
{{works with|ADW Modula-2|any (Compile with the linker option ''Console Application'').}} |
|||
<syntaxhighlight lang="modula2"> |
|||
MODULE BellNumbers; |
|||
FROM STextIO IMPORT |
|||
WriteLn, WriteString; |
|||
FROM SWholeIO IMPORT |
|||
WriteInt; |
|||
CONST |
|||
MaxIndex = 14; |
|||
VAR |
|||
A: ARRAY [0 .. MaxIndex] OF CARDINAL; |
|||
I, J, N: CARDINAL; |
|||
PROCEDURE DisplayRow(N, BellNum: CARDINAL); |
|||
BEGIN |
|||
WriteString("B("); |
|||
WriteInt(N, 2); |
|||
WriteString(") = "); |
|||
WriteInt(BellNum, 9); |
|||
WriteLn |
|||
END DisplayRow; |
|||
BEGIN |
|||
FOR I := 0 TO MaxIndex - 1 DO |
|||
A[I] := 0 |
|||
END; |
|||
N := 0; |
|||
A[0] := 1; |
|||
DisplayRow(N, A[0]); |
|||
WHILE N < MaxIndex DO |
|||
A[N] := A[0]; |
|||
FOR J := N TO 1 BY -1 DO |
|||
A[J - 1] := A[J - 1] + A[J] |
|||
END; |
|||
N := N + 1; |
|||
DisplayRow(N, A[0]) |
|||
END |
|||
END BellNumbers. |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
B( 0) = 1 |
|||
B( 1) = 1 |
|||
B( 2) = 2 |
|||
B( 3) = 5 |
|||
B( 4) = 15 |
|||
B( 5) = 52 |
|||
B( 6) = 203 |
|||
B( 7) = 877 |
|||
B( 8) = 4140 |
|||
B( 9) = 21147 |
|||
B(10) = 115975 |
|||
B(11) = 678570 |
|||
B(12) = 4213597 |
|||
B(13) = 27644437 |
|||
B(14) = 190899322 |
|||
</pre> |
|||
=={{header|Nim}}== |
=={{header|Nim}}== |