Factorial: Difference between revisions
Content deleted Content added
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
![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
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 ); ~