编写一个程序,打印1到1000之间的所有阿姆斯特朗数字。
我的尝试:
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int num=1, rem, sum, k;
cout<<"Armstrong Numbers are: "<<endl;
do
{
sum=0;
k=num;
do
{
rem=num%10;
sum=sum+rem*rem*rem;
num=num/10;
}while(num!=0);
if(sum==k)
{
cout<<k<<ends;
}
num++;
}while(num<=1000);
getch();
return 0;
}
我不知道代码中的错误在哪里。 请帮我定位并更正错误。
您的内部循环正在破坏num
。
num++;
应该是num=k+1;
,因为num
的值在循环之前存储到k
中。