Lah numbers: Difference between revisions

→‎{{header|ALGOL W}}: Correct and include the L(n,0) column
(Added Algol W)
(→‎{{header|ALGOL W}}: Correct and include the L(n,0) column)
Line 49:
; integer result lahNumber, lahScale
) ;
if n = 0k or k = 0 then begin lahNumber := 01; lahScale := 0 end
else if n = k 0 or k = 0 then begin lahNumber := 10; lahScale := 0 end
else if k = 1 then begin lahNumber := f( n ); lahScale := 0 end
else if k > n then begin lahNumber := 0; lahScale := 0 end
Line 79:
% compute the factorials %
begin
integer f; f := 1;
for i := 1 until 12 do begin f := f * i; factorial( i ) := f end
f := 1;
for i := 1 until 12 do begin
f := f * i;
factorial( i ) := f
end for_i
end;
% show the Lah numbers %
write( "Unsigned Lah numbers" );
write( "n/k " );
for i := 10 until 12 do writeon( i_w := 11, s_w := 0, i );
for n := 10 until 12 do begin
write( s_w := 2, i_w := 2, n );
for k := 10 until n do begin
integer lahNumber, lahScale;
L( n, k, factorial, lahNumber, lahScale );
Line 103 ⟶ 99:
<pre>
Unsigned Lah numbers
n/k 0 1 2 3 4 5 6 7 8 9 10 11 12
10 1
21 20 1
32 60 62 1
43 24 0 36 6 12 6 1
54 120 0 240 24 120 36 20 12 1
65 720 0 1800 120 1200 240 300 120 30 20 1
76 5040 0 15120 720 12600 1800 4200 1200 630 300 42 30 1
87 40320 0 141120 141120 5040 58800 15120 11760 12600 1176 4200 56630 42 1
98 362880 1451520 0 1693440 40320 846720 141120 211680 141120 28224 58800 2016 11760 721176 56 1
10 9 3628800 16329600 217728000 12700800 362880 3810240 1451520 635040 1693440 60480846720 211680 3240 28224 90 2016 72 1
1110 39916800 199584000 299376000 199584000 0 69854400 3628800 13970880 16329600 1663200 21772800 12700800 118800 3810240 4950 635040 60480 110 3240 90 1
1211 479001600 2634508800 4390848000 3293136000 1317254400 307359360 0 43908480 39916800 3920400199584000 299376000 199584000 217800 69854400 13970880 7260 1663200 118800 132 4950 110 1
12 0 479001600 2634508800 4390848000 3293136000 1317254400 307359360 43908480 3920400 217800 7260 132 1
</pre>
 
3,044

edits