Torna alle sfide
Media 0 risolte 0% di accettazione

Somma delle cifre elevate alla posizione

Somma ogni cifra elevata alla sua posizione da sinistra.

Cosa imparerai

  • Scomporre un numero in cifre da sinistra a destra
  • Elevare ogni cifra a una potenza che dipende dalla posizione
  • Accumulare un totale in un ciclo

Problema

Numera le cifre di n da sinistra, iniziando da 1. Eleva ogni cifra alla potenza della sua posizione e somma i risultati. Per 352 questo significa 3¹ + 5² + 2³. Una cifra zero aggiunge 0.

Implementa digit_power_sum(n).

Input

n: Un intero positivo.

Output

Restituisci la somma delle cifre elevate.

Vincoli

1 ≤ n ≤ 1.000.000.000

Esempi

Esempio 1
Input:
n = 352

Output atteso:
expected = 36
Input:
long long n = 352;

Output atteso:
long long expected = 36;
Input:
long n = 352;

Output atteso:
long expected = 36;

Spiegazione

3¹ + 5² + 2³ = 3 + 25 + 8 = 36.

Esempio 2
Input:
n = 89

Output atteso:
expected = 89
Input:
long long n = 89;

Output atteso:
long long expected = 89;
Input:
long n = 89;

Output atteso:
long expected = 89;

Spiegazione

8¹ + 9² = 8 + 81 = 89, il numero stesso.

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Scorri il numero cifra per cifra da sinistra a destra e tieni traccia della posizione di ogni cifra.

Suggerimento 2

Converti il numero in stringa, oppure ricava l’indice da sinistra prima di combinare ogni cifra con la sua posizione.

Suggerimento 3

Ricorda che una cifra zero non contribuisce, ma la sua posizione conta comunque per l’esponente.

Complessità attesa

tempo O(d), spazio aggiuntivo O(1)

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.