qq_慕瓜6243838
2020-03-08 10:39
#include <stdio.h>
int main()
{
int x,y,z,s;
int s=x*100+y*10+z;
for(x=1,y=0,z=0;s<1000;s++)
{
if(s==x*x*x+y*y*y+z*z*z)
{
printf("水仙花数为:%d\n",s);
}
}
return 0;
}
思路错了,作者要求的是现得到num,在通过num得到各个位上的数。num变了你的x,y,z没跟着变阿
如果想反着从x,y,z来得到num,并判断num是不是三位数的话,就得好好考虑下递进了,z++到10的时候,z归零,y加1,y==100的时候,z加1.
最好的方法还是:x=num/100,y=(num-num/100)/10,z=num-x*100-y*10
#include <stdio.h>
int main()
{
int x,y,z,s;
for(x=1,y=0,z=0;s<1000;s++)
int s=x*100+y*10+z;
{
if(s==x*x*x+y*y*y+z*z*z)
{
printf("水仙花数为:%d\n",s);
}
}
return 0;
}
C语言入门
926896 学习 · 21532 问题
相似问题