Problem
Nummeriere die Ziffern von n von links, beginnend bei 1. Hebe jede Ziffer auf die Potenz ihrer Position und addiere die Ergebnisse. Für 352 ist das 3¹ + 5² + 2³. Eine Null als Ziffer trägt 0 bei.
Implementiere digit_power_sum(n).
Eingabe
n: Eine positive ganze Zahl.
Ausgabe
Gib die Summe der potenzierten Ziffern zurück.
Einschränkungen
1 ≤ n ≤ 1.000.000.000
Beispiele
Eingabe:
n = 352
Erwartete Ausgabe:
expected = 36
Eingabe:
long long n = 352;
Erwartete Ausgabe:
long long expected = 36;
Eingabe:
long n = 352;
Erwartete Ausgabe:
long expected = 36;
Erläuterung
3¹ + 5² + 2³ = 3 + 25 + 8 = 36.
Eingabe:
n = 89
Erwartete Ausgabe:
expected = 89
Eingabe:
long long n = 89;
Erwartete Ausgabe:
long long expected = 89;
Eingabe:
long n = 89;
Erwartete Ausgabe:
long expected = 89;
Erläuterung
8¹ + 9² = 8 + 81 = 89, die Zahl selbst.
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Gehe die Zahl Ziffer für Ziffer von links nach rechts durch und behalte die Position jeder Ziffer im Blick.
Hinweis 2
Wandle die Zahl in einen String um oder bestimme sonst den Index von links nach rechts, bevor du Ziffer und Position kombinierst.
Hinweis 3
Eine 0 trägt nichts bei, aber ihre Position zählt trotzdem für den Exponenten.
Erwartete Komplexität
Zeit O(d), zusätzlicher Speicher O(1)