К списку задач
Средне Решено: 0 Процент решений: 0%

Сумма степеней цифр

Сложите каждую цифру, возведённую в степень её позиции слева.

Чему вы научитесь

  • Разбивать число на цифры слева направо
  • Возводить каждую цифру в степень по её позиции
  • Накапливать сумму в цикле

Условие

Пронумеруйте цифры числа n слева направо, начиная с 1. Возведите каждую цифру в степень её позиции и сложите результаты. Для 352 это 3¹ + 5² + 2³. Нулевая цифра даёт 0.

Реализуйте функцию digit_power_sum(n).

Ввод

n: положительное целое число.

Вывод

Верните сумму возведённых в степень цифр.

Ограничения

1 ≤ n ≤ 1,000,000,000

Примеры

Пример 1
Ввод:
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.

Пример 2
Ввод:
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) дополнительной памяти

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.