English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Programm lernen Sie, ob eine gegebene Zahl eine Armstrong-Zahl ist. Sie lernen, wie man dies mit for- und while-Loops in Java macht.
Eine positive Ganzzahl wird als Armstrong-Grad bezeichnet, wenn n
abcd... = an + bn + cn + dn + ...
Für3stellige Armstrong-Zahl ist, die Summe der Kubikzahlen jedes Ziffern gleich der Zahl selbst ist. Zum Beispiel:
153 = 1*1*1 + 5*5*5 + 3*3*3 // 153 ist eine Armstrong-Zahl.
public class Armstrong { public static void main(String[] args) { int number = 371, originalNumber, remainder, result = 0; originalNumber = number; while (originalNumber != 0) { remainder = originalNumber % 10; result += Math.pow(remainder, 3); originalNumber /= 10; } if (result == number) System.out.println(number + "Ist eine Armstrong-Zahl."); else System.out.println(number + "Keine Armstrong-Zahl."); } }
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
371 ist eine Armstrong-Zahl.
Zunächst wird der Wert der Zahl (number) in eine andere Ganzzahlvariable originalNumber gespeichert. Dies liegt daran, dass wir am Ende den endgültigen Wert und den ursprünglichen Wert der Zahl vergleichen müssen.
Dann wird originalNumber mit einem while-Loop durchlaufen, bis es 0 ist.
In jeder Iteration wird das letzte Zeichen von num in remainder gespeichert.
Dann wird remainder mit Math.pow() hinzugefügt3(数字位数)und zu result hinzugefügt.
Dann wird durch10Dann wird das letzte Zeichen von originalNumber entfernt.
Schließlich wird result mit number verglichen. Wenn sie gleich sind, ist es eine Armstrong-Zahl. Wenn sie nicht gleich sind, ist es keine.
public class Armstrong { public static void main(String[] args) { int number = 1634originalNumber, remainder, result = 0, n = 0; originalNumber = number; for (; originalNumber != 0; originalNumber /= 10, ++n); originalNumber = number; for (; originalNumber != 0; originalNumber /= 10) { remainder = originalNumber % 10; result += Math.pow(remainder, n); } if (result == number) System.out.println(number + " Ist eine Amstrong-Zahl."); else System.out.println(number + " Ist keine Amstrong-Zahl."); } }
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
1634 ist eine Amstrong-Zahl.
In diesem Programm verwenden wir keine while-Schleife, sondern zwei for-Schleifen.
Der erste for-Zyklus berechnet die Anzahl der Stellen der Zahl. Es ist in folgender komprimierter Form:
for (; originalNumber != 0; originalNumber /= 10) { n++; }
Dann berechnet der zweite for-Zyklus result, wobei der Rest in jeder Iteration durch die Potenz der Zahl n berechnet wird.
Besuchen Sie diese Seite, um zu erfahren, wieZeige alle Amstrong-Zahlen zwischen zwei Intervallen an.