add factorial

This commit is contained in:
Aditya 2022-09-13 19:15:43 +05:30
parent 1c45c1a9c9
commit 719e7dab9b

19
java/Stack/factorial.java Normal file
View file

@ -0,0 +1,19 @@
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));
}
}