Volver a los desafíos
Intermedio 0 resueltos 0% de aceptación

Suma de Potencias de Dígitos

Suma cada dígito elevado a su posición desde la izquierda.

Lo que aprenderás

  • Separar un número en dígitos de izquierda a derecha
  • Elevar cada dígito a una potencia según su posición
  • Acumular un total dentro de un bucle

Problema

Ver original (inglés)

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

Ejemplo 1
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.

Ejemplo 2
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)

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.