Tässä esimerkissä opit tarkistamaan, onko käyttäjän syöttämä numero Armstrong-numero vai ei.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C ++ -ohjelmointiaiheista:
- C ++ jos, jos… muu ja sisäkkäinen, jos … muuten
- C ++ taas ja tee … silmukan aikana
Positiivista kokonaislukua kutsutaan Armstrong-luvuksi (järjestys n), jos
abcd… = a n + b n + c n + d n +…
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
Esimerkki: Tarkista Armstrongin 3 numeron lukumäärä
#include using namespace std; int main() ( int num, originalNum, remainder, result = 0; cout <> num; originalNum = num; while (originalNum != 0) ( // remainder contains the last digit remainder = originalNum % 10; result += remainder * remainder * remainder; // removing last digit from the orignal number originalNum /= 10; ) if (result == num) cout << num << " is an Armstrong number."; else cout << num << " is not an Armstrong number."; return 0; )
Tuotos
Anna positiivinen kokonaisluku: 371 371 on Armstrongin luku.
Ohjelma toistaa it-silmukan läpi, kunnes originalNum on 0.
Jokaisessa silmukan iteroinnissa lisätään tulokseen orignalNumin viimeisen numeron kuutio.
remainder = originalNum % 10; result += remainder * remainder * remainder;
Ja viimeinen numero poistetaan orignalNum
.
Kun silmukka päättyy, yksittäisen numeron kuutio summa tallennetaan tulokseen.
Esimerkki: Tarkista Armstrongin numeroiden lukumäärä
#include #include using namespace std; int main() ( int num, originalNum, remainder, n = 0, result = 0, power; cout <> num; originalNum = num; while (originalNum != 0) ( originalNum /= 10; ++n; ) originalNum = num; while (originalNum != 0) ( remainder = originalNum % 10; // pow() returns a double value // round() returns the equivalent int power = round(pow(remainder, n)); result += power; originalNum /= 10; ) if (result == num) cout << num << " is an Armstrong number."; else cout << num << " is not an Armstrong number."; return 0; )
Tuotos
Syötä kokonaisluku: 1634 1634 on Armstrongin luku.
Tässä ohjelmassa syötetyn luvun numeroiden määrä lasketaan ensin ja tallennetaan n: ään.
Ja pow()
funktio laskee yksittäisten numeroiden voiman while
silmukan jokaisessa iteroinnissa .