Задать вопрос
@sr36

Почему в результате вычисления факториала, в конце присутствует много нолей?

Есть простой код вычисления факториала с использованием BigInteger
BigInteger res = BigInteger.ONE;
    
    int n = 100;
    
    for(int i = 1; i <= n; i++) {
        res = res.multiply(BigInteger.valueOf(i));
    }
    
    System.out.print(res);

При вычислении факториала мы получаем число с множеством нолей в конце

961446671503512660926865558697259548455355905059659464369444714048531715130254590603314961882364451384985595980362059157503710042865532928000000000000000000000000

Почему так происходит?
  • Вопрос задан
  • 395 просмотров
Подписаться 1 Простой Комментировать
Решение пользователя KOTaSYS К ответам на вопрос (2)
@KOTaSYS
Каждый раз, когда ты умножаешь на 5 - по сути ты добовляешь ноль в конец числа. Для небольших N я бы оценил количество нолей как ~1/4*N, где N число возводимое в факториал. Например, 32! = 265252859812191058636308480000000, содержит 7 нолей.
Ответ написан
Комментировать