#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;
}
判断水仙花数,为什么没有153
- 写回答
- 好问题 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向钉钉机器人发送可以放大的图片?