腾讯笔试编程题第三道

腾讯笔试编程题第三道题 a,b两个数同时加1或者同时乘以2,求最小等于A,B的次数,用的递归方法,用了三个判断分别是1):  if  (a+1)*2==A、(b+1)*2==B。2)else if    a*2<=A、B*2<=B。3) else    递归函数名(a/2+1   b/2+1)、方法是递归,试了几个简单的用例还可以如果复杂的话不知道行不行,有和我一样做法的么
全部评论
逆向奇偶分析,偶数除2,奇数减1。
点赞 回复 分享
发布于 2017-09-13 17:21
我这是第一道555
点赞 回复 分享
发布于 2017-09-13 17:17
反过来就行了吧
点赞 回复 分享
发布于 2017-09-13 17:46
我的思路是将 a A转化成二进制然后再进行比较 例子一: 100: 1100100 202: 11001010   // 2位不同即需要2次 (1+1 =2) 406: 110010110 // 3位不同即需要3次 (1+2 =3) 因为1100100<1100101,所以直接比较, 例子二: 7 18 18:111 20:10010 因为111>100,所以比较111 和 1001的差,记录数,然后再比较不同的位数。 所以 2 +1,需要三步 即先比较 a和A a.length长度的二进制
点赞 回复 分享
发布于 2017-09-13 17:43
乘2操作,和加1操作最后,就是a 乘以 2^ n + f(2)的多项式 例子: ((a + 1) * 2 + 1) * 2 = > a.2 ^ 2 + 2^2 + 2... A - B = a*2 ^n - b*2^n => n = log2( (A - B) / (a -b)),球的乘2的个数 然后再贪心求1的个数
点赞 回复 分享
发布于 2017-09-13 17:26
先判断判断两组数的大小吧,A<a这种是不行的,要求a必须变成A吗,如果是的话ab得大小关系一定和AB的大小关系一样,如果不是的话得先判断大小关系,小的变小的,大的变大的
点赞 回复 分享
发布于 2017-09-13 17:20
听大神说的BFS
点赞 回复 分享
发布于 2017-09-13 17:19
我也用的递归方法
点赞 回复 分享
发布于 2017-09-13 17:18
看大家都在吐槽腾讯的编程环境我就放心了,那也叫智能提示?
点赞 回复 分享
发布于 2017-09-13 17:14

相关推荐

头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
06-23 17:45
门头沟学院 Java
里面的项目啥的真的有用吗?&nbsp;这些人是割韭菜吗?
HellowordX:很简单,如果你有自己稳定的学习路线和获取知识的方式就没必要,如果你啥都不懂的小白或者里边有你感兴趣的知识,我觉得挺值,我也经常为知识付费,因为时间精力有限,很多东西我不可能自己重复造轮子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务