该程序要求用户输入两个整数并显示给定间隔之间的所有阿姆斯壮数。
如果你在编程中不知道如何检查一个数字是否是阿姆斯特朗,那么这个程序可能看起来并不复杂。
访问此页面以了解 Armstrong number 以及如何在 C++ 编程中检查它.
示例: 显示区间之间的阿姆斯壮数
#include <iostream> using namespace std; int main() { int num1, num2, i, num, digit, sum; cout << "Enter first number: "; cin >> num1; cout << "Enter second number: "; cin >> num2; cout << "Armstrong numbers between " << num1 << " and " << num2 << " are: " << endl; for(i = num1; i <= num2; i++) { sum = 0; num = i; for(; num > 0; num /= 10) { digit = num % 10; sum = sum + digit * digit * digit; } if(sum == i) { cout << i << endl; } } return 0; }
输出
Enter first number: 100 Enter second number: 400 Armstrong numbers between 100 and 400 are: 153 370 371
在这个程序中,假设用户总是先输入较小的数字。
如果用户先输入较大的数字,该程序将不会执行预期的任务。
如果用户先输入较大的数字,您可以将代码添加到交换用户输入的两个数字使该程序正常运行。
在这个程序中,间隔之间的每个数字都被取出并存储在变量
num中。然后,在
digit 中检索数字的每个数字并求立方(^3)。
立方结果与最后一位数字
sum的立方结果相加。
最后,当遍历每个数字时,将
sum 与原始数字
i 进行比较。如果它们相等,则该数为阿姆斯特朗数。