C Ohjelma näyttää Armstrong-luku kahden aikavälin välillä

Tässä esimerkissä opit etsimään kaikki Armstrong-numerot kahden käyttäjän kirjoittaman kokonaisluvun väliltä.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C-ohjelmointiaiheista:

  • C jos… muuta lausunto
  • C silmukalle

Positiivista kokonaislukua kutsutaan Armstrong-luvuksi (järjestys n), jos

 abcd… = an + bn + cn + dn + 

Armstrongin 3-numeroisen lukumäärän tapauksessa jokaisen numeron kuutioiden summa on yhtä suuri kuin itse numero. Esimerkiksi 153 on Armstrong-luku, koska

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

Ennen kuin yrität tätä ohjelmaa, opi tarkistamaan, onko kokonaisluku Armstrong-luku vai ei.

Armstrongin numerot kahden kokonaisluvun välillä

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

Tuotos

 Syötä kaksi numeroa (väli): 200 2000 Armstrong-numeroa välillä 200 ja 2000 ovat: 370371407 1634 

Ohjelmassa ulompi silmukka iteroidaan arvosta (matala + 1) arvoon (korkea - 1) . Jokaisessa iteraatiossa tarkistetaan, onko numero Armstrong-luku vai ei.

Ulkosilmukan sisällä kokonaisluvun numeroiden määrä lasketaan ensin ja tallennetaan count. Ja yksittäisten numeroiden tehon summa tallennetaan tulosmuuttujaan.

Jos luku on yhtä suuri result, luku on Armstrongin luku.

Huomaa: Sinun on palautettava laskenta ja tulos nollaksi jokaisessa ulomman silmukan iteroinnissa.

Mielenkiintoisia artikkeleita...