问题描述
两个数A和B,其中A<B。只能对A进行两种操作:A=A+1 或 A=A*2,求A到B的最少操作次数。
解决思路
先判断符号位是否相等,如果不等,就一直A=A+1。然后判断二进制长度是否相等,如果不等,表明数值相差较大,可以尝试A=A*2。如果长度相等,表明数值非常接近,直接B-A。
代码实现
1 | function minStep(A, B) { |
两个数A和B,其中A<B。只能对A进行两种操作:A=A+1 或 A=A*2,求A到B的最少操作次数。
先判断符号位是否相等,如果不等,就一直A=A+1。然后判断二进制长度是否相等,如果不等,表明数值相差较大,可以尝试A=A*2。如果长度相等,表明数值非常接近,直接B-A。
1 | function minStep(A, B) { |