摘要: 用减法会超时,所以用除数倍增的方法来实现除法。以100/3为例.算法分别比较97, 94, 91, ..., 4,1, -2,最后dividend = -2退出while循环.算法比较了34次.如果采用每次采用将比较数翻倍的比较方法. 算法会得到优化. 举例如下: k初始化为0, res = 0;首先用3与100比,小于. 然后翻倍6, 小于. 12, 24, 48, 96, 192, 因为192 > 100. 退回到 96. 这里共比较了 5次. 每比较一次 k++, res += 1<<k.100 - 96 = 4 > 除数3. 再用4重做上一步. 先跟3比较, 然 阅读全文
posted @ 2013-05-17 16:23 代码改变未来 阅读(285) 评论(0) 推荐(0) 编辑