Problema
Numera los dígitos de n desde la izquierda, comenzando en 1. Eleva cada dígito a la potencia de su posición y suma los resultados. Para 352 esto es 3¹ + 5² + 2³. Un dígito cero suma 0.
Implementa digit_power_sum(n).
Entrada
n: Un número entero positivo.
Salida
Devuelve la suma de los dígitos elevados a sus posiciones.
Restricciones
1 ≤ n ≤ 1,000,000,000
Ejemplos
Entrada:
n = 352
Salida esperada:
expected = 36
Entrada:
long long n = 352;
Salida esperada:
long long expected = 36;
Entrada:
long n = 352;
Salida esperada:
long expected = 36;
Explicación
3¹ + 5² + 2³ = 3 + 25 + 8 = 36.
Entrada:
n = 89
Salida esperada:
expected = 89
Entrada:
long long n = 89;
Salida esperada:
long long expected = 89;
Entrada:
long n = 89;
Salida esperada:
long expected = 89;
Explicación
8¹ + 9² = 8 + 81 = 89, el mismo número.
Cómo abordarlo
Inténtalo primero por tu cuenta y luego abre las pistas una a una.
Pista 1
Recorre el número dígito a dígito de izquierda a derecha y lleva la cuenta de la posición de cada dígito.
Pista 2
Convierte el número a string o, de otro modo, conoce el índice de izquierda a derecha antes de combinar cada dígito con su posición.
Pista 3
Recuerda que un 0 no aporta nada, pero su posición sigue importando para el exponente.
Complejidad esperada
tiempo O(d), espacio extra O(1)