C Programm Armstrongi arvu kuvamiseks kahe intervalli vahel

Lang L: none (table-of-contents)

Selles näites õpitakse leidma kõik Armstrongi numbrid kahe kasutaja poolt sisestatud täisarvu vahel.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest C-programmeerimise teemadest:

  • C kui … muidu avaldus
  • C silmuse jaoks

Positiivset täisarvu nimetatakse Armstrongi arvuks (suurusjärgus n), kui

 abcd… = an + bn + cn + dn + 

Armstrongi 3-kohalise arvu korral võrdub iga numbri kuubikute summa number ise. Näiteks 153 on Armstrongi arv, sest

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

Enne selle programmi proovimist õppige, kuidas kontrollida, kas täisarv on Armstrongi number või mitte.

Armstrongi numbrid kahe täisarvu vahel

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

Väljund

 Sisestage kaks numbrit (intervallid): 200 2000 Armstrongi numbrit vahemikus 200 kuni 2000 on: 370 371 407 1634 

Programmis itereeritakse välimine silmus väärtusest (madal + 1) väärtuseni (kõrge - 1) . Igas iteratsioonis kontrollitakse, kas number on Armstrongi number või mitte.

Välise silmuse sees arvutatakse kõigepealt täisarvu numbrite arv ja salvestatakse see count. Ja üksikute numbrite võimsuse summa salvestatakse tulemuse muutujasse.

Kui arv on võrdne result, on see arv Armstrongi arv.

Märkus. Peate lähtestama loenduse ja tulemuse nullini igas välise silmuse iteratsioonis.

Huvitavad Artiklid...