Factorial: Difference between revisions
Content added Content deleted
(Added Ada) |
|||
Line 5:
==References==
[http://en.wikipedia.org/wiki/Factorial Wikipedia]
=={{header|Ada}}==
<Ada>
function Factorial (N : Positive) return Positive is
Result : Positive := N;
Counter : Natural := N - 1;
begin
for I in reverse 1..Counter loop
Result := Result * I;
end loop;
return Result;
end Factorial;
</Ada>
=={{header|Python}}==
|
Revision as of 03:27, 17 August 2008
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
The Factorial Function is the product of a sequence n, n-1, n-2...1 starting at the input number to the function.
Write a function to factorialise a number. Solutions can be iterative or recursive (though recursive solutions are generally considered too slow and are mostly used as an exercise in recursion). Support for negative n errors is optional.
References
Ada
<Ada> function Factorial (N : Positive) return Positive is
Result : Positive := N; Counter : Natural := N - 1;
begin
for I in reverse 1..Counter loop Result := Result * I; end loop; return Result;
end Factorial; </Ada>
Python
Iterative
<python>def factorial(n):
z=n while n>1: n=n-1 z=z*n return z
</python>
Recursive
<python>def factorial(n):
z=1 if n>1: z=n*factorial(n-1) return z
</python>
ALGOL 68
Iterative
PROC factorial = (INT in n)LONG LONG INT:( INT n := in n; LONG LONG INT z := n; WHILE n>1 DO n -:= 1; z *:= n OD; z ); ~
Recursive
PROC factorial = (INT n)LONG LONG INT:( IF n>1 THEN n*factorial(n-1) ELSE 1 FI ); ~