C ++ - Programm zur Überprüfung der Armstrong-Nummer

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 whileSchleife.

Interessante Beiträge...