Evaluate binomial coefficients: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: added/changed whitespace and comments.) |
(Added an Algol W sample) |
||
Line 148: | Line 148: | ||
+10 |
+10 |
||
</pre> |
</pre> |
||
=={{header|ALGOL W}}== |
|||
<lang algolw>begin |
|||
% calculates n!/k! % |
|||
integer procedure factorialOverFactorial( integer value n, k ) ; |
|||
if k > n then 0 |
|||
else if k = n then 1 |
|||
else % k < n % begin |
|||
integer f; |
|||
f := 1; |
|||
for i := k + 1 until n do f := f * i; |
|||
f |
|||
end factorialOverFactorial ; |
|||
% calculates n! % |
|||
integer procedure factorial( integer value n ) ; |
|||
begin |
|||
integer f; |
|||
f := 1; |
|||
for i := 2 until n do f := f * i; |
|||
f |
|||
end factorial ; |
|||
% calculates the binomial coefficient of (n k) % |
|||
% uses the factorialOverFactorial procedure for a slight optimisation % |
|||
integer procedure binomialCoefficient( integer value n, k ) ; |
|||
if ( n - k ) > k |
|||
then factorialOverFactorial( n, n - k ) div factorial( k ) |
|||
else factorialOverFactorial( n, k ) div factorial( n - k ); |
|||
% display the binomial coefficient of (5 3) % |
|||
write( binomialCoefficient( 5, 3 ) ) |
|||
end.</lang> |
|||
=={{header|AppleScript}}== |
=={{header|AppleScript}}== |