Program C ++ na kontrolu Armstrongovho čísla

V tomto príklade sa naučíte skontrolovať, či je číslo zadané používateľom číslom Armstrong alebo nie.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich programovacích tém C ++:

  • C ++ ak, ak … inak a Vnorené, ak … inak
  • C ++ zatiaľ čo a robiť … zatiaľ čo Loop

Kladné celé číslo sa nazýva Armstrongovo číslo (rádu n), ak

abcd … = a n + b n + c n + d n + …

V prípade Armstrongovho čísla s 3 číslicami sa súčet kociek každej číslice rovná samotnému číslu. Napríklad 153 je Armstrongovo číslo, pretože

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

Príklad: Skontrolujte Armstrongov počet 3 číslic

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

Výkon

 Zadajte kladné celé číslo: 371 371 je Armstrongovo číslo.

V programe prechádzame cyklom while, kým nemá originalNum hodnotu 0.

V každej iterácii slučky sa k výsledku pridá kocka poslednej číslice orignalNum.

 remainder = originalNum % 10; result += remainder * remainder * remainder;

A posledná číslica je odstránená z orignalNum.

Po skončení slučky sa do výsledku uloží súčet kocky jednotlivých číslic.

Príklad: Skontrolujte počet Armstrongov n číslic

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

Výkon

 Zadajte celé číslo: 1634 1634 je Armstrongovo číslo.

V tomto programe sa najskôr počíta počet číslic zadaného čísla a uloží sa do n.

A je pow()funkcia vypočíta silu jednotlivých číslic v každom opakovaní whileslučky.

Zaujímavé články...