Задача несложная, при вычислении факториала воспользовался массивами для хранения больших чисел.
Условия задачи
n! означает n × (n − 1) × ... × 3 × 2 × 1
Например:
10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800
и сумма цифр в числе 10! равна:
3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.
Найдите сумму цифр в числе 100!.
Описание работы программы
Т.к. программа получилась довольно громоздкой, то разделил ее на два скриншота.
Числа при расчёте факториала получаются огромные, поэтому храниться будут в виде отдельных цифр в массивах. Цифры из одного массива (arr) по очереди перемножаются на очередное число (от 1 до 100) и результаты умножения записываются во второй массив (answ).
При этом число, полученное при умножении:
num = arr[i] * j;
раскладывается на единицы, десяти и сотни, которые уже и прибавляются в соответствующие разряды числа-массива answ[].
answ[i] = int_num;
answ[i+1] = dec;
answ[i+2] = hndr;
После вычисления !100 остаётся просто сложить цифры из массива.
Ответ на задачу:
P.S. Изначальная цель блога - получить "фидбек" в комментариях, чтобы более опытные "кодеры" указывали мне на ошибки, советовали и всячески помогали в саморазвитии.
Также приглашаю всех на мой сайт)
На нем Вы можете посмотреть ответ на задачу Эйлера 20 (когда необходима лишь небольшая подсказка) и последний, самый быстрый вариант решения.
В общем, добро пожаловать на канал))