gudongmai
2019-10-14 17:53
采纳率: 87.5%
浏览 313

判断水仙花数,为什么没有153

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int i,j,k,s;
    for(i=100;i<=999;i++)
       {
           s=0;
           j=i;
           do{
              k=j%10;
              s+=pow(k,3);
              j=j/10;
           }while(j>0);
        if(s==i) printf("%d\n",i);
       }
    return 0;
}

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • blownewbee 2019-10-14 18:19
    已采纳

    s+=pow(k,3);
    这个代码不可靠,因为pow是浮点计算,存在误差,而转换成int以后可能有精度误差,造成误判。
    s+=(int)(pow(k,3)+0.5);
    四舍五入下

    点赞 打赏 评论

相关推荐 更多相似问题