Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาจำนวนการดำเนินการที่กำหนดเพื่อให้บรรลุเป้าหมายใน Python


สมมติว่าเรามีค่าเริ่มต้นและสิ้นสุดสองค่า เราต้องหาจำนวนขั้นต่ำของการดำเนินการที่จำเป็นในการแปลงจุดเริ่มต้นไปยังจุดสิ้นสุดโดยใช้การดำเนินการเหล่านี้ -

  • ลดลง 1

  • คูณด้วย 2

ดังนั้น หากอินพุตเป็นเหมือน start =2 สิ้นสุด =7 ผลลัพธ์จะเป็น 3 เนื่องจากเราสามารถคูณ 2 ได้ 4 จากนั้นคูณ 2 ได้ 8 แล้วลบ 1 เพื่อให้ได้ 7

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ตอบ :=0

  • ทำสิ่งต่อไปนี้อย่างไม่สิ้นสุด ทำ

    • ถ้าสิ้นสุด <=เริ่มแล้ว

      • return ans + start - end

    • มิฉะนั้นเมื่อสิ้นสุดเป็นเลขคี่แล้ว

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

    • มิฉะนั้น

      • end :=ผลหารสิ้นสุด / 2

      • ans :=ans + 1

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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