C ++ - programma om Armstrong-nummer te controleren

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 whilelus.

Interessante artikelen...