C ++ program az Armstrong-szám ellenőrzésére

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 whilehurok minden iterációjában .

érdekes cikkek...