看戏网123改了什么网:求组编程高手如何循环输出整数?

来源:百度文库 编辑:高考问答 时间:2024/05/06 01:38:19
题目:
求1~10000之间所有满足各位数字的立方和等于它本身的数.如153的各位数字的立方和是153->1^3+5^3+3^3=1+125+27=153
源程序:
#include<stdio.h>
void main()
{
int i,t,x,sum=0;
for(x=1;x<=10000;x++){
i=x;
while(i>0){
t=i%10;
sum=sum+t*t*t;
i=i/10;
}
if (sum==x)
printf("%d\n",x);
}
}
但是程序运行后只能输出一个数"1".
请问如何改正?

每回循环后SUM得清零.
要不然SUM会一直累加到溢出为止,当然不行了.
#include<stdio.h>
void main()
{
int i,t,x,sum=0;
for(x=1;x<=10000;x++){
i=x;
while(i>0){
t=i%10;
sum=sum+t*t*t;
i=i/10;
}
if (sum==x)
printf("%d\n",x);

sum=0;//加上这一句

}
}