Šajā piemērā jūs iemācīsities atrast visus Armstronga skaitļus starp diviem lietotāja ievadītiem veseliem skaitļiem.
Lai saprastu šo piemēru, jums vajadzētu būt zināšanām par šādām C programmēšanas tēmām:
- C ja … cits paziņojums
- C cilnei
Pozitīvu veselu skaitli sauc par Ārmstronga skaitli (secībā n), ja
abcd… = an + bn + cn + dn +
Ārmstronga 3 ciparu skaitļa gadījumā katra cipara kubu summa ir vienāda ar pašu skaitli. Piemēram, 153 ir Ārmstronga skaitlis, jo
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Pirms izmēģināt šo programmu, uzziniet, kā pārbaudīt, vai vesels skaitlis ir Ārmstronga skaitlis.
Ārmstrongs skaitļi starp diviem veseliem skaitļiem
#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; )
Rezultāts
Ievadiet divus skaitļus (intervālus): 200 2000 Ārmstronga skaitļi no 200 līdz 2000 ir: 370 371 407 1634
Programmā ārējā cilpa tiek atkārtota no (zema + 1) līdz (augsta - 1) . Katrā atkārtojumā tiek pārbaudīts, vai skaitlis ir Ārmstronga numurs.
Ārējās cilpas iekšpusē vispirms tiek aprēķināts vesela skaitļa ciparu skaits un saglabāts count
. Un atsevišķu ciparu jaudas summa tiek saglabāta rezultāta mainīgajā.
Ja skaitlis ir vienāds ar result
skaitli, tas ir Ārmstronga skaitlis.
Piezīme . Katrā ārējās cilpas atkārtojumā ir jāatiestata skaitlis un rezultāts līdz 0.