求100到1000之间的所有水仙花数

2024-11-18 15:24:49
推荐回答(2个)
回答(1):

int main(){
int a,i,j,t,sum=0;
for(i=100;i<1000;i++){
t=i;
sum=0;//算完之后sum要重置
for(j=0;j<3;j++)
{
a=t%10;
t=t/10;//把i变了循环就乱了
sum=sum+(int)pow(a,3);
}
if(sum==i)
printf("%d\t",i);
}//把大括号括起来,使循环执行整个计算过程
return 1;
}

回答(2):

i是循环变量
“i=i/10;”
这行破坏了i的值
把这三行
for(j=0;j<3;j++)
a=i%10;
i=i/10;
改成下列三行才行
for(j=0,int b=i;j<3;j++)
a=b%10;
b=b/10;