C Program til visning af Armstrong-antal mellem to intervaller

Indholdsfortegnelse

I dette eksempel lærer du at finde alle Armstrong-numre mellem to heltal indtastet af brugeren.

For at forstå dette eksempel skal du have kendskab til følgende C-programmeringsemner:

  • C hvis… ellers Erklæring
  • C for Loop

Et positivt heltal kaldes et Armstrong-tal (af rækkefølge n) hvis

 abcd… = an + bn + cn + dn + 

I tilfælde af et Armstrong-antal på 3 cifre er summen af ​​terninger af hvert ciffer lig med selve tallet. For eksempel er 153 et Armstrong-tal, fordi

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 

Før du prøver dette program, skal du lære at kontrollere, om et heltal er et Armstrong-nummer eller ej.

Armstrong tal mellem to heltal

 #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; )

Produktion

 Indtast to tal (intervaller): 200 2000 Armstrong-numre mellem 200 og 2000 er: 370 371 407 1634 

I programmet gentages den ydre sløjfe fra (lav + 1) til (høj - 1) . I hver iteration kontrolleres det, om tallet er et Armstrong-nummer eller ej.

Inde i den ydre sløjfe beregnes antallet af cifre i et heltal først og gemmes i count. Og summen af ​​effekten af ​​individuelle cifre er gemt i resultatvariablen.

Hvis antallet er lig med result, er tallet et Armstrong-tal.

Bemærk: Du skal nulstille antallet og resultatet til 0 i hver iteration af den ydre sløjfe.

Interessante artikler...