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

Chương trình tìm số lượng các hoạt động nhất định cần thiết để đạt được Target bằng Python

Giả sử chúng ta có hai giá trị bắt đầu và kết thúc, chúng ta phải tìm số lượng thao tác tối thiểu cần thiết để chuyển đổi giá trị bắt đầu thành kết thúc bằng cách sử dụng các thao tác này -

  • Giảm 1

  • Nhân với 2

Vì vậy, nếu đầu vào là start =2, end =7, thì đầu ra sẽ là 3, vì chúng ta có thể nhân 2 để được 4, sau đó nhân 2 để được 8 và sau đó trừ 1 để được 7.

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

  • ans:=0

  • Làm những điều sau vô hạn, hãy làm

    • nếu end <=start thì

      • return ans + start - end

    • ngược lại khi kết thúc là số lẻ thì

      • end:=end + 1, ans:=ans + 1

    • nếu không,

      • end:=thương số của end / 2

      • ans:=ans + 1

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

Ví dụ

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

Đầu vào

2, 7

Đầu ra

3