StackOverflowError вычисляет факториал BigInteger?

Я пытаюсь написать программу на Java для расчета факториала большого числа. Это выглядитBigInteger не в состоянии удерживать такое большое количество.

Ниже приведен (простой) код, который я написал.

 public static BigInteger getFactorial(BigInteger num) {
      if (num.intValue() == 0) return BigInteger.valueOf(1);

      if (num.intValue() == 1) return BigInteger.valueOf(1);

      return num.multiply(getFactorial(num.subtract(BigInteger.valueOf(1))));
  }

Максимальное количество, которое указанная выше программа обрабатывает в 5022, после чего программа выдаетStackOverflowError, Есть ли другие способы справиться с этим?

Ответы на вопрос(5)

Ваш ответ на вопрос