In diesem Beispiel lernen Sie zu überprüfen, ob eine vom Benutzer eingegebene Nummer eine Armstrong-Nummer ist oder nicht.
Um dieses Beispiel zu verstehen, sollten Sie die folgenden C ++ - Programmierthemen kennen:
- C ++ if, if… else und Nested if… else
- C ++ while und do… while Loop
Eine positive ganze Zahl wird als Armstrong-Zahl (der Ordnung n) bezeichnet, wenn
abcd… = a n + b n + c n + d n +…
Bei einer Armstrong-Zahl mit 3 Ziffern entspricht die Summe der Würfel jeder Ziffer der Zahl selbst. Zum Beispiel ist 153 eine Armstrong-Nummer, weil
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Beispiel: Überprüfen Sie die 3-stellige Armstrong-Nummer
#include using namespace std; int main() ( int num, originalNum, remainder, result = 0; cout <> num; originalNum = num; while (originalNum != 0) ( // remainder contains the last digit remainder = originalNum % 10; result += remainder * remainder * remainder; // removing last digit from the orignal number originalNum /= 10; ) if (result == num) cout << num << " is an Armstrong number."; else cout << num << " is not an Armstrong number."; return 0; )
Ausgabe
Geben Sie eine positive Ganzzahl ein: 371 371 ist eine Armstrong-Zahl.
Im Programm durchlaufen wir die while-Schleife, bis originalNum 0 ist.
In jeder Iteration der Schleife wird der Würfel der letzten Ziffer von orignalNum zum Ergebnis hinzugefügt.
remainder = originalNum % 10; result += remainder * remainder * remainder;
Und die letzte Ziffer wird aus dem entfernt orignalNum
.
Wenn die Schleife endet, wird die Summe des Würfels der einzelnen Ziffer im Ergebnis gespeichert.
Beispiel: Überprüfen Sie die Armstrong-Anzahl von n Ziffern
#include #include using namespace std; int main() ( int num, originalNum, remainder, n = 0, result = 0, power; cout <> num; originalNum = num; while (originalNum != 0) ( originalNum /= 10; ++n; ) originalNum = num; while (originalNum != 0) ( remainder = originalNum % 10; // pow() returns a double value // round() returns the equivalent int power = round(pow(remainder, n)); result += power; originalNum /= 10; ) if (result == num) cout << num << " is an Armstrong number."; else cout << num << " is not an Armstrong number."; return 0; )
Ausgabe
Geben Sie eine Ganzzahl ein: 1634 1634 ist eine Armstrong-Zahl.
In diesem Programm wird zuerst die Anzahl der Ziffern der eingegebenen Nummer berechnet und in n gespeichert.
Und die pow()
Funktion berechnet die Potenz einzelner Ziffern in jeder Iteration der while
Schleife.