В този пример ще се научите да проверявате дали въведеният от потребителя номер е номер на Армстронг или не.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на C ++:
- C ++ ако, ако … друго и вложено ако … друго
- C ++ докато и правя … докато Loop
Положително цяло число се нарича число на Армстронг (от порядък n), ако
abcd … = a n + b n + c n + d n + …
В случай на число на Армстронг от 3 цифри, сумата от кубчета на всяка цифра е равна на самото число. Например 153 е число на Армстронг, защото
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Пример: Проверете броя на Армстронг от 3 цифри
#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; )
Изход
Въведете положително цяло число: 371 371 е число на Армстронг.
В програмата прелистваме цикъла while, докато originalNum е 0.
Във всяка итерация на цикъла кубът на последната цифра на orignalNum се добавя към резултата.
remainder = originalNum % 10; result += remainder * remainder * remainder;
И последната цифра е премахната от orignalNum
.
Когато цикълът завърши, сумата от куба на отделната цифра се съхранява в резултат.
Пример: Проверете броя на Армстронг от n цифри
#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; )
Изход
Въведете цяло число: 1634 1634 е число на Армстронг.
В тази програма първо се изчислява броят на цифрите от въведеното число и се съхранява в n.
И pow()
функцията изчислява мощността на отделни цифри във всяка итерация на while
цикъла.