Finding the factorial using recursion with the BigInteger Class

biginteger, factorial, java, recursion

Solution

There's an error in the code, you should put

  BigInteger factz = BigInteger.valueOf(a);

instead of `BigInteger factz = BigInteger.ONE;`

Problem

So consider the following program-segment! I've tried to use the basic recursion function to determine the factorial of a number, but now using the BigInteger class. ``` public static BigInteger fact(int a) { BigInteger factorial = BigInteger.ONE; BigInteger factz = BigInteger.ONE; if(a == 1) { return factorial; } else { return factz.multiply(fact(a-1)); } } ``` So when I try implementing this in a program, it returns the output as 1. Is it because BigInteger objects are immutable? Or am I missing something here?

Original source