Computer >> Máy Tính >  >> Lập trình >> Python

Máy tính bị hỏng trong Python


Giả sử chúng ta có một máy tính bị hỏng có một số hiển thị trên màn hình, chúng ta chỉ có thể thực hiện hai phép toán -

  • Double - Điều này sẽ nhân số trên màn hình với 2 hoặc;

  • Giảm - Điều này sẽ giảm số đang hiển thị, đi 1,

Ban đầu, máy tính đang hiển thị số X. Chúng ta phải tìm số phép toán tối thiểu cần thiết để hiển thị số Y.

Vì vậy, nếu đầu vào giống như X =5 và Y là 8, thì đầu ra sẽ là 2, giảm một lần, sau đó nhân đôi nó

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • res:=0

  • trong khi Y> X

    • res:=res + Y mod 2 + 1

    • Y:=Y / 2 khi Y chẵn, ngược lại (Y + 1) / 2

  • trả về res + X - Y

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn -

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))

Đầu vào

5
8

Đầu ra

2