原文: https://www.programiz.com/cpp-programming/examples/armstrong-number-interval
要理解此示例,您应该了解以下 C++ 编程主题:
该程序要求用户输入两个整数,并显示给定间隔之间的所有阿姆斯特朗数字。
如果您在编程时不知道如何检查数字是否为阿姆斯特朗,则该程序似乎有点复杂。
访问此页面以了解 阿姆斯特朗数以及如何在 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中。 然后,在num中检索数字的每个数字并进行立方化(^ 3)。
将最后一位数字的求立方的结果添加到sum中。
最后,当遍历每个数字时,将sum与原始数字i进行比较。 如果它们相等,则该数字为阿姆斯特朗数字。