Пронумеруйте цифры числа n слева направо, начиная с 1. Возведите каждую цифру в степень её позиции и сложите результаты. Для 352 это 3¹ + 5² + 2³. Нулевая цифра даёт 0.
Реализуйте функцию digit_power_sum(n).
Ввод
n: положительное целое число.
Вывод
Верните сумму возведённых в степень цифр.
Ограничения
1 ≤ n ≤ 1,000,000,000
Примеры
Ввод:
n = 352
Ожидаемый вывод:
expected = 36
Ввод:
long long n = 352;
Ожидаемый вывод:
long long expected = 36;
Ввод:
long n = 352;
Ожидаемый вывод:
long expected = 36;
Пояснение
3¹ + 5² + 2³ = 3 + 25 + 8 = 36.
Ввод:
n = 89
Ожидаемый вывод:
expected = 89
Ввод:
long long n = 89;
Ожидаемый вывод:
long long expected = 89;
Ввод:
long n = 89;
Ожидаемый вывод:
long expected = 89;
Пояснение
8¹ + 9² = 8 + 81 = 89, само число.
Как подступиться
Сначала попробуйте сами, затем открывайте подсказки по одной.
Подсказка 1
Просматривай число по цифрам слева направо и отслеживай позицию каждой цифры.
Подсказка 2
Преобразуй число в строку или как-то иначе узнай индекс слева направо перед тем, как учитывать цифру и её позицию.
Подсказка 3
Помни: цифра 0 ничего не даёт, но её позиция всё равно важна для степени.
Ожидаемая сложность
O(d) по времени, O(1) дополнительной памяти