@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

Почему так происходит?
  • Вопрос задан
  • 255 просмотров
Решения вопроса 2
Потому что начиная с 5! все факториалы заканчиваются на нуль (или нули).
См. таблицу значений
https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%BA%D...
P.S. похоже ваше значение некорректно
Ответ написан
@KOTaSYS
Каждый раз, когда ты умножаешь на 5 - по сути ты добовляешь ноль в конец числа. Для небольших N я бы оценил количество нолей как ~1/4*N, где N число возводимое в факториал. Например, 32! = 265252859812191058636308480000000, содержит 7 нолей.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы