Program C pentru afișarea numărului Armstrong între două intervale

În acest exemplu, veți învăța să găsiți toate numerele Armstrong între două numere întregi introduse de utilizator.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele următoarelor subiecte de programare C:

  • C dacă … altfel Declarație
  • C pentru Loop

Un număr întreg pozitiv se numește număr Armstrong (de ordinul n) dacă

 abcd… = an + bn + cn + dn + 

În cazul unui număr Armstrong de 3 cifre, suma cuburilor fiecărei cifre este egală cu numărul în sine. De exemplu, 153 este un număr Armstrong deoarece

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

Înainte de a încerca acest program, aflați cum să verificați dacă un număr întreg este sau nu un număr Armstrong.

Armstrong numără între doi numere întregi

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

Ieșire

 Introduceți două numere (intervale): 200 2000 Numerele Armstrong între 200 și 2000 sunt: ​​370 371 407 1634 

În program, bucla exterioară este iterată de la (low + 1) la (high - 1) . În fiecare iterație, se verifică dacă numărul este sau nu un număr Armstrong.

În interiorul buclei exterioare, numărul de cifre al unui număr întreg este calculat mai întâi și stocat în count. Și, suma puterii cifrelor individuale este stocată în variabila rezultat.

Dacă numărul este egal cu result, numărul este un număr Armstrong.

Notă: Trebuie să resetați numărul și să rezultați la 0 în fiecare iterație a buclei exterioare.

Articole interesante...