Voltar para os desafios
Médio 0 resolvidos 0% de aceitação

Soma das Potências dos Dígitos

Some cada dígito elevado à sua posição a partir da esquerda.

O que você vai aprender

  • Separar um número em dígitos da esquerda para a direita
  • Elevar cada dígito a uma potência conforme a posição
  • Acumular um total dentro de um laço

Problema

Ver original (inglês)

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

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

Exemplo 2
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

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.