没有新消息
问题来自于
福大大
实名#福大大架构师每日一题#2021-05-03:给定一个非负整数num, 如何不用循环语句, 返回>=num,并且离num最近
2021-05-03:给定一个非负整数num, 如何不用循环语句, 返回>=num,并且离num最近的,2的某次方 。
3616
阅读
1
回答
合作商务邮箱:sbyh@zhaopin.com.cn
京ICP备17067871号 合字B2-20210134
违法不良信息举报电话:400-885-9898
关爱未成年举报热线:400-885-9898-7
朝阳区人力资源与社会保障局 监督电话: 57596212,65090445
#福大大架构师每日一题#2021-05-03:给定一个非负整数num, 如何不用循环语句, 返回>=num,并且离num最近
32位整数,N=32。 1.非负整数用int表示。时间复杂度是logN。 整数减一后的二进制形式,1右边的数字全部变成1,最后加1就是需要返回的结果。 2.非负整数用float64表示。浮点数隐含用到了log(整数)的结果,所以复杂度是O(1)。这种方法有点偷奸耍滑了,因为题目里是整数,而这里是用float64,并不是整数,但思路奇特,故采纳了。 浮点数=符号位+阶码+尾数。当尾数不为0的时候,尾数变成0,阶码+1,这就是需要返回的浮点数的内存结果;当尾数为0的时候,当前浮点数就是需要返回的结果。