📅  最后修改于: 2020-09-25 05:58:35             🧑  作者: Mango
该程序要求用户输入两个整数,并显示给定间隔之间的所有阿姆斯壮数字。
如果您在编程时不知道如何检查数字是否为阿姆斯壮,则该程序似乎有点复杂。
访问此页面以了解Armstrong编号以及如何在C++编程中对其进行检查。
#include
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
。如果它们相等,则该数字为阿姆斯壮数字。