Для ускорения работы программы вычислил и сохранил факториалы чисел в массив по индексу.
Условия задачи
145 является любопытным числом, поскольку
1! + 4! + 5! = 1 + 24 + 120 = 145.
Найдите сумму всех чисел, каждое из которых равно сумме факториалов своих цифр.
Примечание: поскольку 1! = 1 и 2! = 2 не являются суммами, учитывать их не следует.
Описание работы программы
Поскольку в процессе работы программы многократно будут необходимы значения факториалов от 0! до 9!, то решил вычислить их один раз и их значения сохранить в массив по индексу чисел.
массив[число] = факториал числа;
Далее необходимо определиться до какого числа необходимо искать искомые числа. Рассуждения следующие:
- 9! = 362880 - шестизначное число
- семизначное число может получиться от суммы десяти таких чисел
- следовательно, проверять нужно до семизначных чисел, не более
Далее, в цикле, каждое число раскладывается на цифры, по индексу в массиве определяется факториал числа и число сравнивается с суммой факториалов его цифр - все как в задании.
Ответ на задачу:
P.S. Изначальная цель блога - получить "фидбек" в комментариях, чтобы более опытные "кодеры" указывали мне на ошибки, советовали и всячески помогали в саморазвитии.
Также приглашаю всех на мой сайт)
На нем Вы можете посмотреть ответ на задачу Эйлера 34 (когда необходима лишь небольшая подсказка) и последний, самый быстрый вариант решения.
В общем, добро пожаловать на канал))