mirror of
https://git.adityakumar.xyz/data-structures.git
synced 2024-12-23 03:52:53 +00:00
19 lines
447 B
Java
19 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));
|
|
}
|
|
}
|