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

判断水仙花数,为什么没有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条回答 默认 最新

  • threenewbee 2019-10-14 18:19
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?