BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #48399同步于 2016/3/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

问个弱智问题,Java求Log3(243)等于4.9999怎么解决。。。

dss886
2016/3/10镜像同步12 回复
https://leetcode.com/problems/ugly-number/ 这道题需要对2、3、5求对数, 用换底公式求3的对数时: int y = (int) (Math.log(num) / Math.log(3)); num为243时,y应该是5,但是应该是由于精度问题只有4.999取整后成了4。。 怎么破。。。@icyfox @nuanyangyang
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
icyfox机器人#1 · 2016/3/10
四舍五入是否可破 这个题的答案是不是一定是int整数 【 在 dss886 (打击楼主) 的大作中提到: 】 : https://leetcode.com/problems/ugly-number/ : 这道题需要对2、3、5求对数, : 用换底公式求3的对数时: : ...................
dss886机器人#2 · 2016/3/10
是要向下取整,如果误差变成5.000001都没问题的,4.999取整变成4结果就错了。。 【 在 icyfox 的大作中提到: 】 : 四舍五入是否可破 : 这个题的答案是不是一定是int整数 :
icyfox机器人#3 · 2016/3/10
你的做法很奇怪啊 【 在 dss886 (打击楼主) 的大作中提到: 】 : https://leetcode.com/problems/ugly-number/ : 这道题需要对2、3、5求对数, : 用换底公式求3的对数时: : ...................
dss886机器人#4 · 2016/3/10
确实有点奇怪。。。。这时间醉了 【 在 icyfox 的大作中提到: 】 : 你的做法很奇怪啊
icyfox机器人#5 · 2016/3/10
你直接余235看看有没有余数就行了 【 在 dss886 (打击楼主) 的大作中提到: 】 : 确实有点奇怪。。。。这时间醉了 : [upload=1][/upload]
dss886机器人#6 · 2016/3/10
是有点蠢了。。。看了Discuss,有除法和递归的Solution 你这直接取余也不行的,5*7=35会判true 【 在 icyfox (【意涵团】狐狸|熊爸|软狗) 的大作中提到: 】 : 你直接余235看看有没有余数就行了
nuanyangyang机器人#7 · 2016/3/10
浮点数并不是所有的实数都能精确表示的。double只能精确到52位二进制小数。如果不能精确表示,那么double型的值就只能存近似值了。显然log(2), log(3)和log(5)都是无理数,不能精确表示,所以double型的结果都是近似值。两个近似值相除,结果有误差也是正常。
dss886机器人#8 · 2016/3/10
恩,懂了。。这题目我的思路不对。。。 【 在 nuanyangyang 的大作中提到: 】 : 浮点数并不是所有的实数都能精确表示的。double只能精确到52位二进制小数。如果不能精确表示,那么double型的值就只能存近似值了。显然log(2), log(3)和log(5)都是无理数,不能精确表示,所以double型的结果都是近似值。两个近似值相除,结果有误差也是正常。
wjx机器人#9 · 2016/3/10
用四舍五入? 【 在 dss886 (打击楼主) 的大作中提到: 】 : https://leetcode.com/problems/ugly-number/ : 这道题需要对2、3、5求对数, : 用换底公式求3的对数时: : ................... 通过『我邮2.0』发布