Einfach 0 gelöst 0% Erfolgsquote

Armstrong-Zahl

Prüfe, ob eine Zahl gleich der Summe ihrer Ziffern ist, wobei jede Ziffer auf die Anzahl der Ziffern potenziert wird.

Das lernst du

  • Die Ziffern einer Zahl zählen
  • Jede Ziffer hoch der Ziffernanzahl nehmen und addieren
  • Das Ergebnis mit der Originalzahl vergleichen

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

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

Beispiel 2
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.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.