Factorial: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 21: | Line 21: | ||
z=n*factorial(n-1) |
z=n*factorial(n-1) |
||
return z |
return z |
||
</python> |
|||
=={{header|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 |
|||
); ~ |
Revision as of 03:08, 17 August 2008
Factorial
You are encouraged to solve this task according to the task description, using any language you may know.
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
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 ); ~