| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1202 人关注过本帖
标题:关于不同代码输出“水仙花数”产生的结果不同的问题
只看楼主 加入收藏
CCFzeroOH
Rank: 2
等 级:论坛游民
帖 子:79
专家分:85
注 册:2009-12-22
收藏
得分:1 
以下是引用『点点滴滴』在2011-2-17 09:16:11的发言:

        if (i==(int)(pow(a,3)+pow(b,3)+pow(c,3)+0.5))


是这么个意思
2011-02-17 10:23
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:0 
回复 8楼 wangmile7
这句话a=i*0.01;
就拿153来说吧a=1.53三次方后数字就放大了,导致后面的判断并不十分精确,能通过也应该是侥幸

免费赠送河蟹一只
2011-02-17 10:50
sulang123
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-2-4
收藏
得分:0 
用点点滴滴的方法对了~~~
可是我已经int a了,a所取得的值只有整数,后面的小数忽略去了。。
这个应该不是问题吧?
2011-02-17 10:56
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:0 
回复 13楼 sulang123
那省去后面小数部分数据不是又变小啦,如果你要求输出1000000以内的水仙花数估计就有问题,你这个程序没有可延续性

免费赠送河蟹一只
2011-02-17 11:00
sulang123
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-2-4
收藏
得分:0 
如果从这方面来说,第二种方法比较好。。。
2011-02-17 11:08
草坪
Rank: 1
等 级:新手上路
帖 子:12
专家分:1
注 册:2010-10-30
收藏
得分:1 
a=i*0.01;
从“double”转换到“int”,可能丢失数据
2011-02-17 13:26
丞相杀手
Rank: 6Rank: 6
等 级:侠之大者
帖 子:203
专家分:462
注 册:2011-1-11
收藏
得分:1 
以下是引用A13433758072在2011-2-17 09:15:42的发言:

pow 函数的函数原型为: double pow(double x,double y); 它表示 pow 函数有两个 double 型的形式参数 x、y,调用后的返回值也为 double 型



编程时有一点原则,就是永远不要对 浮点型 数据 进行 == !=的判断,因为这两种数据类型时不精确的

斗不过疯子,不参与争论。
2011-02-17 17:43
sulang123
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-2-4
收藏
得分:0 
嗯,谢谢楼上的兄弟呀
2011-02-17 19:42
jj369258
Rank: 4
等 级:业余侠客
帖 子:116
专家分:226
注 册:2010-12-2
收藏
得分:1 
回复 楼主 sulang123
用这个看(if(n==i*i*i+j*j*j+k*k*k))
2011-02-22 19:27
快速回复:关于不同代码输出“水仙花数”产生的结果不同的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083109 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved