In diesem Beispiel lernen Sie, alle Armstrong-Zahlen zwischen zwei vom Benutzer eingegebenen Ganzzahlen zu finden.
Um dieses Beispiel zu verstehen, sollten Sie die folgenden C-Programmierthemen kennen:
- C if… else Statement
- C für Schleife
Eine positive ganze Zahl wird als Armstrong-Zahl (der Ordnung n) bezeichnet, wenn
abcd… = an + bn + cn + dn +
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
Bevor Sie dieses Programm ausprobieren, lernen Sie, wie Sie überprüfen, ob eine Ganzzahl eine Armstrong-Zahl ist oder nicht.
Armstrong-Zahlen zwischen zwei ganzen Zahlen
#include #include int main() ( int low, high, number, originalNumber, rem, count = 0; double result = 0.0; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Armstrong numbers between %d and %d are: ", low, high); // iterate number from (low + 1) to (high - 1) // In each iteration, check if number is Armstrong for (number = low + 1; number < high; ++number) ( originalNumber = number; // number of digits calculation while (originalNumber != 0) ( originalNumber /= 10; ++count; ) originalNumber = number; // result contains sum of nth power of individual digits while (originalNumber != 0) ( rem = originalNumber % 10; result += pow(rem, count); originalNumber /= 10; ) // check if number is equal to the sum of nth power of individual digits if ((int)result == number) ( printf("%d ", number); ) // resetting the values count = 0; result = 0; ) return 0; )
Ausgabe
Geben Sie zwei Zahlen (Intervalle) ein: 200 2000 Armstrong-Zahlen zwischen 200 und 2000 sind: 370 371 407 1634
Im Programm wird die äußere Schleife von (niedrig + 1) nach (hoch - 1) iteriert . In jeder Iteration wird geprüft, ob die Nummer eine Armstrong-Nummer ist oder nicht.
Innerhalb der äußeren Schleife wird zuerst die Anzahl der Ziffern einer Ganzzahl berechnet und in gespeichert count
. Und die Summe der Potenz einzelner Ziffern wird in der Ergebnisvariablen gespeichert.
Wenn die Zahl gleich ist, result
ist die Zahl eine Armstrong-Zahl.
Hinweis: Sie müssen die Anzahl und das Ergebnis in jeder Iteration der äußeren Schleife auf 0 zurücksetzen.