学长的计算机

本文探讨了一个数学问题,即如何使用仅有“双倍”和“递减”操作的计算器,从初始数字A转换到目标数字B所需的最少步骤。通过逆向思维,判断目标数字的奇偶性来决定操作方式,实现从B到A的逆向操作,从而找到最优解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述
学长平时非常懒,他经常要计算一些数字,他为了偷懒于是去商店购买了一台计算器。老板欺负他个子小不能打,于是卖了一台残次品给他。这台残次品计算器只能进行两个操作:

双倍(Double):将显示屏上的数字乘 2;

递减(Decrement):将显示屏上的数字减 1 。

最初,计算器显示数字 A。
现在请你帮帮学长,返回显示数字 B 所需的最小操作数。
输入
样例输入由多组测试数据组成。
每组测试数据第一行输入两个正整数A ( 1 <= A <= 10^9 ) 和 B ( 1 <= B <= 10^9 )
输出
输出由A变成B的最小操作次数 。
在这里插入图片描述
在这里插入图片描述
这题重要的一点是逆向思维,判断y是偶数还是奇数,y要除2还是加1。很多人的方法其实写的比我简便,主要我不喜欢用函数,就暴力点解,太难了,总能在一些神奇的小地方出现问题。ok,Its My Time。
在这里插入图片描述
总之得多努力了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值