Program C na zobrazenie Armstrongovho čísla medzi dvoma intervalmi

V tomto príklade sa naučíte nájsť všetky Armstrongove čísla medzi dvoma celými číslami zadanými používateľom.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku C:

  • C ak … iné vyhlásenie
  • C pre slučku

Kladné celé číslo sa nazýva Armstrongovo číslo (rádu n), ak

 abcd… = an + bn + cn + dn + 

V prípade Armstrongovho čísla s 3 číslicami sa súčet kociek každej číslice rovná samotnému číslu. Napríklad 153 je Armstrongovo číslo, pretože

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

Pred vyskúšaním tohto programu sa naučte skontrolovať, či je celé číslo Armstrongovo číslo alebo nie.

Armstrong čísla medzi dvoma celými číslami

 #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ýkon

 Zadajte dve čísla (intervaly): 200 2000 Armstrongových čísel medzi 200 a 2000 sú: 370 371 407 1634 

V programe je vonkajšia slučka iterovaná od (nízka + 1) do (vysoká - 1) . V každej iterácii sa kontroluje, či je číslo Armstrongovým číslom alebo nie.

Vo vnútri vonkajšej slučky sa najskôr počíta počet číslic celého čísla, ktoré sa uložia do count. A súčet výkonu jednotlivých číslic je uložený vo výslednej premennej.

Ak sa číslo rovná result, číslo je Armstrongovo číslo.

Poznámka: Musíte resetovať počet a výsledok na 0 v každej iterácii vonkajšej slučky.

Zaujímavé články...