Problem
Eine Zahl mit k Ziffern ist eine Armstrong-Zahl, wenn die Summe jeder Ziffer, potenziert mit k, der Zahl selbst entspricht. Zum Beispiel gilt 153 = 1³ + 5³ + 3³.
Implementiere is_armstrong(n).
Eingabe
n: Eine nichtnegative ganze Zahl.
Ausgabe
Gib true zurück, wenn n eine Armstrong-Zahl ist.
Einschränkungen
0 ≤ n ≤ 10¹⁸
Beispiele
Eingabe:
n = 153
Erwartete Ausgabe:
expected = True
Eingabe:
long long n = 153;
Erwartete Ausgabe:
bool expected = true;
Eingabe:
long n = 153;
Erwartete Ausgabe:
bool expected = true;
Erläuterung
1³ + 5³ + 3³ = 1 + 125 + 27 = 153.
Eingabe:
n = 10
Erwartete Ausgabe:
expected = False
Eingabe:
long long n = 10;
Erwartete Ausgabe:
bool expected = false;
Eingabe:
long n = 10;
Erwartete Ausgabe:
bool expected = false;
Erläuterung
1² + 0² = 1, was nicht 10 ist.
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Zähle zuerst, wie viele Ziffern die Zahl hat, bevor du Potenzen aufsummierst.
Hinweis 2
Vergleiche die ursprüngliche Zahl mit der Summe jeder Ziffer hoch auf die Ziffernanzahl.
Hinweis 3
Denk daran, dass 0 ein besonderer einstelliger Fall ist.
Erwartete Komplexität
Zeit O(k), zusätzlicher Speicher O(1)
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.