Armstrong-Zahlen in C++ überprüfen

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man in C++ überprüft, ob eine Zahl eine Armstrong-Zahl ist oder nicht. Eine Armstrong-Zahl ist eine Zahl, die der Summe ihrer eigenen Ziffern gleich ist, wobei jede Ziffer hoch der Anzahl der Ziffern potenziert wird. Dies ist ein einfaches Programm, das Ihnen helfen kann, Ihre C++-Programmierfähigkeiten zu üben.

Notwendige Bibliotheken einbinden

Wir werden eine neue Datei namens main.cpp im Verzeichnis ~/project mit dem folgenden Befehl erstellen:

touch ~/project/main.cpp

In diesem Schritt werden wir die erforderlichen Bibliotheken einbinden.

#include <iostream>
#include <cmath>
using namespace std;

Die Bibliothek iostream wird für die Arbeit mit Eingabe-/Ausgabeströmen verwendet, während die Bibliothek cmath Funktionalität für mathematische Operationen hinzufügt.

Die main()-Funktion definieren

In diesem Schritt werden wir die main()-Funktion definieren.

int main() {
    // code here
    return 0;
}

Die Hauptfunktion ist der Einstiegspunkt des Programms. Aller Code, der ausgeführt werden soll, muss innerhalb dieser Funktion geschrieben werden.

Variablen deklarieren und initialisieren

In diesem Schritt werden wir die für das Programm erforderlichen Variablen deklarieren und initialisieren.

int num, originalNumber, remainder, result = 0, n = 0;
  • num ist die Eingabzahl
  • originalNumber ist die unmodifizierte Eingabzahl
  • remainder speichert die letzte Ziffer der Eingabzahl
  • result speichert das Ergebnis der Armstrong-Berechnung
  • n wird verwendet, um die Anzahl der Ziffern in der Eingabzahl zu bestimmen

Benutzereingabe entgegennehmen

In diesem Schritt werden wir den Eingabewert vom Benutzer entgegennehmen.

cout << "Enter a positive integer: ";
cin >> num;

Dieser Codeausschnitt nimmt die Eingabe vom Benutzer entgegen und speichert sie in der Variable num.

Bestimmen der Anzahl der Ziffern in der Eingabzahl

In diesem Schritt werden wir die Anzahl der Ziffern in der Eingabzahl bestimmen.

originalNumber = num;

// count number of digits
while (originalNumber!= 0) {
    originalNumber /= 10;
    ++n;
}

Dieser Codeblock zählt die Anzahl der Ziffern in der Eingabzahl. Die Anzahl wird in der Variable n gespeichert.

Berechne das Ergebnis

In diesem Schritt werden wir das Ergebnis der Armstrong-Berechnung berechnen.

originalNumber = num;

while (originalNumber!= 0) {
    remainder = originalNumber % 10;
    result += pow(remainder, n);
    originalNumber /= 10;
}

Dieser Codeblock iteriert über jede Ziffer in der Eingabzahl und führt die Berechnung für eine Armstrong-Zahl durch. Das Ergebnis wird in der Variable result gespeichert.

Überprüfe das Ergebnis

In diesem Schritt werden wir überprüfen, ob die Eingabzahl eine Armstrong-Zahl ist oder nicht.

if (result == num)
    cout << num << " ist eine Armstrong-Zahl";
else
    cout << num << " ist keine Armstrong-Zahl";

Dieser Codeblock gibt das Ergebnis des Programms aus. Wenn das Ergebnis der Eingabzahl entspricht, ist die Eingabzahl eine Armstrong-Zahl. Andernfalls ist es nicht.

Um den Code im Terminal auszuführen:

g++ main.cpp -o main && ./main

Zusammenfassung

In diesem Lab haben wir gelernt, wie man überprüft, ob eine Zahl eine Armstrong-Zahl ist oder nicht. Wir haben die cmath-Bibliothek verwendet, um die für diese Aufgabe erforderlichen Berechnungen durchzuführen. Wir haben auch gelernt, wie man über die Ziffern einer Zahl iteriert und zählt. Mit diesem einfachen Programm können Sie Ihre C++-Programmierkenntnisse weiterentwickeln.