Ausgabe, ob eine Zahl eine Armstrong-Zahl ist
In diesem Schritt vervollständigen wir unseren Armstrong-Zahl-Prüfer, indem wir die ursprüngliche Zahl mit der berechneten Ziffersumme vergleichen.
Öffnen Sie die Datei armstrong.c:
cd ~/project
nano armstrong.c
Aktualisieren Sie den Code, um zu bestimmen und auszugeben, ob die Zahl eine Armstrong-Zahl ist:
#include <stdio.h>
#include <math.h>
int main() {
int number, originalNumber, remainder, digitCount = 0;
long long digitSum = 0;
// Den Benutzer auffordern, eine Zahl einzugeben
printf("Geben Sie eine Zahl ein, um zu prüfen, ob es sich um eine Armstrong-Zahl handelt: ");
scanf("%d", &number);
// Die ursprüngliche Zahl für den späteren Vergleich speichern
originalNumber = number;
// Die Anzahl der Ziffern zählen
while (number != 0) {
number /= 10;
digitCount++;
}
// Zahl auf den ursprünglichen Wert zurücksetzen
number = originalNumber;
// Summe jeder Ziffer potenziert mit der Ziffernanzahl berechnen
while (number != 0) {
remainder = number % 10;
digitSum += pow(remainder, digitCount);
number /= 10;
}
// Überprüfen, ob die Zahl eine Armstrong-Zahl ist
if (digitSum == originalNumber) {
printf("%d ist eine Armstrong-Zahl.\n", originalNumber);
} else {
printf("%d ist keine Armstrong-Zahl.\n", originalNumber);
}
return 0;
}
Kompilieren Sie das Programm:
gcc armstrong.c -o armstrong -lm
./armstrong
Beispielausgaben:
Geben Sie eine Zahl ein, um zu prüfen, ob es sich um eine Armstrong-Zahl handelt: 153
153 ist eine Armstrong-Zahl.
Geben Sie eine Zahl ein, um zu prüfen, ob es sich um eine Armstrong-Zahl handelt: 154
154 ist keine Armstrong-Zahl.
Erklärung der Schlüsselkonzepte:
- Vergleichen Sie
digitSum
mit der originalNumber
.
- Wenn sie gleich sind, handelt es sich um eine Armstrong-Zahl.
- Das Programm verarbeitet verschiedene Eingabefälle.