Python 中的损坏计算器

pythonserver side programmingprogramming更新于 2025/11/11 18:20:17

假设我们有一个损坏的计算器,其显示屏上显示一个数字,我们只能执行两个操作 −

  • 将 − 加倍,这会将显示屏上的数字乘以 2,或者;

  • 减少 −这将使显示的数字减少 1,

最初,计算器显示数字 X。我们必须找到显示数字 Y 所需的最少操作数。

因此,如果输入为 X = 5 且 Y 为 8,则输出将为 2,因为减少一次,然后加倍

为了解决这个问题,我们将遵循以下步骤 −

  • res := 0

  • while Y > X

    • res := res + Y mod 2 + 1

    • 当 Y 为偶数时,Y := Y / 2,否则 (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

相关文章


有用资源