mirror of
https://git.adityakumar.xyz/data-structures.git
synced 2024-11-12 22:29:45 +00:00
20 lines
447 B
Java
20 lines
447 B
Java
|
class factorial {
|
||
|
/** @return n! */
|
||
|
static long fact(int n) {
|
||
|
// To fit n! in a long variable, require n < 21
|
||
|
assert (n >= 0) && (n <= 20) : "n out of range";
|
||
|
// Make a stack just big enough
|
||
|
Stack<Integer> S = new AStack<Integer>(n);
|
||
|
while (n > 1) S.push(n--);
|
||
|
long result = 1;
|
||
|
while (S.length() > 0)
|
||
|
result = result * S.pop();
|
||
|
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
public static void main(String[] args) {
|
||
|
System.out.println(fact(5));
|
||
|
}
|
||
|
}
|