刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

最少问题

题目描述:

输入两个整数n(0<n<100001)和k(0<k<100001),通过对n连续进行加1或减1或乘以2这3种操作,使得n最后结果正好等于k(同一种操作可以使用多次也可以不使用),要求最后输出最少的操作次数。

例如:n为5,k为17,通过减1、乘以2、乘以2、加1四次操作得到17,也就是5-1=4,4*2=8、8*2=16,16+1=17.

输入描述

输入两个整数n和k(n和k之间以一个空格隔开)

输出描述

输出最少的操作次数


样例输入

5 17

样例输出

4

使用微信搜索喵呜刷题,轻松应对考试!

答案:

输入的两个整数为n和k,n=5,k=17。最少操作次数为4次。

解析:

【喵呜刷题小喵解析】:
这个问题可以使用广度优先搜索(BFS)算法来解决。我们首先将n加入队列中,然后开始循环执行以下操作:

1. 从队列中取出一个数num,检查它是否等于k。如果等于k,则返回操作次数。
2. 如果num不等于k,则进行以下三种操作:
* 将num加1,将结果加入队列中,并将操作次数加1。
* 将num减1,将结果加入队列中,并将操作次数加1。
* 将num乘以2,将结果加入队列中,并将操作次数加1。
3. 重复步骤1和2,直到队列为空。

对于输入的n=5和k=17,我们可以按照以下步骤执行操作:

1. 5 -> 6 (加1)
2. 6 -> 12 (乘以2)
3. 12 -> 11 (减1)
4. 11 -> 22 (乘以2)
5. 22 -> 23 (加1)

因此,最少操作次数为4次。
创作类型:
原创

本文链接:最少问题 题目描述: 输入两个整数n(0<n<100001)和k(0<k<100001),通过对n连

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share