提问者:小点点

编写一个程序打印1到1000之间的所有阿姆斯特朗数字


编写一个程序,打印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;
}

我不知道代码中的错误在哪里。 请帮我定位并更正错误。


共1个答案

匿名用户

您的内部循环正在破坏num

num++;应该是num=k+1;,因为num的值在循环之前存储到k中。