Einführung
In diesem Lab werden wir uns mit Armstrong-Zahlen beschäftigen und ein C-Programm schreiben, um zu überprüfen, ob eine Zahl eine Armstrong-Zahl ist oder nicht. Eine Armstrong-Zahl ist eine Zahl, die die Summe ihrer eigenen Ziffern ist, wobei jede Ziffer hochgestellt wird zur Potenz der Anzahl der Ziffern.
Beispielsweise:
153 ist eine Armstrong-Zahl, weil 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27. 371 ist eine Armstrong-Zahl, weil 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1.
Erstellen Sie eine neue C-Datei
Zunächst müssen wir eine neue C-Datei im Verzeichnis ~/project/ erstellen. Nennen wir sie main.c.
touch ~/project/main.c
Armstrong-Zahlen zwischen 1 und 500 finden
Schreiben wir ein C-Programm, um Armstrong-Zahlen zwischen 1 und 500 zu finden.
#include <stdio.h>
#include <math.h>
int main() {
printf("\nArmstrong-Zahlen zwischen 1 und 500 sind: \n");
for (int i = 1; i <= 500; i++) {
int t = i, sum = 0;
while (t!= 0) {
int digit = t % 10;
sum += pow(digit, 3);
t /= 10;
}
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
Überprüfen, ob eine Zahl eine Armstrong-Zahl ist
Schreiben wir nun ein C-Programm, um zu überprüfen, ob eine Zahl eine Armstrong-Zahl ist oder nicht.
#include <stdio.h>
#include <math.h>
int main() {
int n, sum = 0;
printf("Geben Sie eine Zahl ein: ");
scanf("%d", &n);
int temp = n;
while (temp!= 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
Wenn (sum == n) {
printf("%d ist eine Armstrong-Zahl.\n", n);
} Andernfalls {
printf("%d ist keine Armstrong-Zahl.\n", n);
}
return 0;
}
Alles zusammenfügen
Bringen wir beide Programme in unsere main.c-Datei zusammen.
#include <stdio.h>
#include <math.h>
int main() {
// Armstrong-Zahlen zwischen 1 und 500
printf("Armstrong-Zahlen zwischen 1 und 500 sind: \n");
for (int i = 1; i <= 500; i++) {
int t = i, sum = 0;
while (t!= 0) {
int digit = t % 10;
sum += pow(digit, 3);
t /= 10;
}
if (sum == i) {
printf("%d ", i);
}
}
printf("\n");
// Überprüfen, ob eine Zahl eine Armstrong-Zahl ist
int n, sum = 0;
printf("Geben Sie eine Zahl ein: ");
scanf("%d", &n);
int temp = n;
while (temp!= 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == n) {
printf("%d ist eine Armstrong-Zahl.\n", n);
} else {
printf("%d ist keine Armstrong-Zahl.\n", n);
}
return 0;
}
Zusammenfassung
In diesem Lab haben wir uns mit Armstrong-Zahlen beschäftigt und gelernt, wie man sie in einem gegebenen Bereich findet und wie man überprüft, ob eine Zahl eine Armstrong-Zahl ist oder nicht. Wir hoffen, dass Ihnen dieses Lab gefallen hat und es Ihnen geholfen hat, mehr über die C-Programmierung zu lernen.



