In dit voorbeeld leert u controleren of een door de gebruiker ingevoerd nummer een Armstrong-nummer is of niet.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C ++ programmeeronderwerpen:
- C ++ if, if… else en genest if… else
- C ++ while en do … while Loop
Een positief geheel getal wordt een Armstrong-getal (van orde n) genoemd als
abcd … = een n + b n + c n + d n + …
In het geval van een Armstrong-nummer van 3 cijfers, is de som van de kubussen van elk cijfer gelijk aan het nummer zelf. 153 is bijvoorbeeld een Armstrong-nummer omdat
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Voorbeeld: controleer Armstrong-nummer van 3 cijfers
#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; )
Uitvoer
Voer een positief geheel getal in: 371371 is een Armstrong-getal.
In het programma herhalen we de while-lus totdat originalNum 0 is.
Bij elke iteratie van de lus wordt de kubus van het laatste cijfer van orignalNum aan het resultaat toegevoegd.
remainder = originalNum % 10; result += remainder * remainder * remainder;
En het laatste cijfer wordt verwijderd uit de orignalNum
.
Wanneer de lus eindigt, wordt de som van de kubus van het individuele cijfer in het resultaat opgeslagen.
Voorbeeld: Controleer het Armstrong-aantal n cijfers
#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; )
Uitvoer
Voer een geheel getal in: 1634 1634 is een Armstrong-getal.
In dit programma wordt het aantal cijfers van het ingevoerde nummer eerst berekend en opgeslagen in n.
En de pow()
functie berekent de kracht van individuele cijfers in elke iteratie van de while
lus.