- 博客(1)
- 收藏
- 关注
原创 LCR 001.两数相除
因为不能使用*,不能直接计算b*c,用到类似快速幂的思想来用加法代替乘法。即:每次判断c的二进制最后一位是否为1,如果为1则把b*c的答案加上add(add初始值为b),否则不作处理,然后将c>>1(即c/2),add<<1(即add*2)。题目求a/b=c,实际上是找一个c,使得b*(c-1)<=a<b*c。用二分查找的思想,在[b*(c-1),b*c]这个区间找到符合条件的c。每次判断c的二进制末位是否为1来选择是否添加add进tmp中,如果tmp>a,则返回false。,所以排除这个特殊情况。
2026-03-01 16:37:13
376
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅