Python中损坏的计算器
假设我们有一个坏掉的计算器,显示屏上显示了一个数字,我们只能执行两个操作-
双倍-将显示屏上的数字乘以2,或;
递减-这会将显示的数字减少1,
最初,计算器显示的是数字X。我们必须找到显示数字Y所需的最少操作数。
因此,如果输入像X=5且Y为8,则输出将为2,减1,然后减一
为了解决这个问题,我们将遵循以下步骤-
res:=0
而Y>X
res:=res+Ymod2+1
Y:=Y/2,当Y为偶数时,否则(Y+1)/2
返回res+X-Y
示例(Python)
让我们看下面的实现以更好地理解-
class Solution(object): def brokenCalc(self, X, Y): res = 0 while Y > X: res += Y % 2 + 1 Y = Y // 2 if Y % 2 == 0 else (Y + 1)//2 return res + X - Y ob = Solution()print(ob.brokenCalc(5,8))
输入值
5 8
输出结果
2