Problema
Numere os dígitos de n da esquerda para a direita, começando em 1. Eleve cada dígito à potência de sua posição e some os resultados. Para 352, isso é 3¹ + 5² + 2³. Um dígito zero soma 0.
Implemente digit_power_sum(n).
Entrada
n: Um inteiro positivo.
Saída
Retorne a soma dos dígitos elevados às suas posições.
Restrições
1 ≤ n ≤ 1.000.000.000
Exemplos
Entrada:
n = 352
Saída esperada:
expected = 36
Entrada:
long long n = 352;
Saída esperada:
long long expected = 36;
Entrada:
long n = 352;
Saída esperada:
long expected = 36;
Explicação
3¹ + 5² + 2³ = 3 + 25 + 8 = 36.
Entrada:
n = 89
Saída esperada:
expected = 89
Entrada:
long long n = 89;
Saída esperada:
long long expected = 89;
Entrada:
long n = 89;
Saída esperada:
long expected = 89;
Explicação
8¹ + 9² = 8 + 81 = 89, o próprio número.
Como abordar
Tente sozinho primeiro e depois abra uma dica de cada vez.
Dica 1
Percorra o número dígito por dígito da esquerda para a direita e acompanhe a posição de cada dígito.
Dica 2
Converta o número para string ou descubra o índice da esquerda para a direita antes de combinar cada dígito com sua posição.
Dica 3
Lembre-se de que um dígito zero não contribui em nada, mas sua posição ainda conta no expoente.
Complexidade esperada
O(d) tempo, O(1) espaço extra