程序查找在Python中达到目标所需的给定操作数

假设我们有两个值start和end,我们必须使用这些操作找到将start转换为end所需的最小操作数-

  • 减1

  • 乘以2

因此,如果输入类似于start = 2,end = 7,则输出将为3,因为我们可以将2乘以得到4,然后将2乘以得到8,然后减去1来得到7。

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

  • 回答:= 0

  • 无限执行以下操作

    • 结束:=结束/ 2的商

    • 回答:=回答+1

    • 结束:=结束+ 1,ANS:= ANS + 1

    • 返回ans +开始-结束

    • 如果结束<=开始,则

    • 否则当结尾是奇数时

    • 除此以外,

    让我们看下面的实现以更好地理解-

    示例

    class Solution:
       def solve(self, start, end):
          ans = 0
          while True:
             if end <= start:
                return ans + start - end
             elif end % 2:
                end += 1
                ans += 1
             else:
                end //= 2
                ans += 1
    ob1 = Solution()start = 2
    end = 7
    print(ob1.solve(start, end))

    输入项

    2, 7

    输出结果

    3
    猜你喜欢