为了账号安全,请及时绑定邮箱和手机立即绑定

帮我看下这个是写错了还是思路错了

#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;
}

正在回答

2 回答

思路错了,作者要求的是现得到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

0 回复 有任何疑惑可以回复我~

#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;
}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

帮我看下这个是写错了还是思路错了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信