Ebben a példában megtanulja ellenőrizni, hogy a felhasználó által megadott szám Armstrong-e vagy sem.
A példa megértéséhez ismernie kell a következő C ++ programozási témákat:
- C ++ ha, ha… más, és beágyazott, ha … más
- C ++ közben és csináld … míg a hurok
A pozitív egész számot Armstrong számnak nevezzük (n sorrendben), ha
abcd… = a n + b n + c n + d n +…
Armstrong 3 jegyű száma esetén az egyes számjegyek kockáinak összege megegyezik magával a számmal. Például a 153 egy Armstrong-szám, mert
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Példa: Ellenőrizze az Armstrong 3 számjegyből álló számát
#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; )
Kimenet
Adjon meg pozitív egész számot: 371 371 Armstrong-szám.
A programban a while cikluson keresztül iterálunk, amíg az originalNum értéke 0.
A hurok minden iterációjában az orignalNum utolsó számjegyének kockája hozzáadódik az eredményhez.
remainder = originalNum % 10; result += remainder * remainder * remainder;
És az utolsó számjegy eltávolításra kerül a orignalNum
.
Amikor a hurok véget ér, az egyes számjegyek kockájának összege tárolásra kerül az eredményben.
Példa: Ellenőrizze Armstrong n számjegy számát
#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; )
Kimenet
Adjon meg egy egész számot: 1634 1634 Armstrong szám.
Ebben a programban a kiszámított számjegyek számát először kiszámítják és n-ben tárolják.
És a pow()
függvény kiszámítja az egyes számjegyek erejét a while
hurok minden iterációjában .