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

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


สมมติว่าเรามีตัวเลขเริ่มต้นและสิ้นสุดหมายเลขอื่น (เริ่มต้น

  • เพิ่มขึ้นทีละ 1
  • คูณด้วย 2

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

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

  • ct:=0
  • ขณะสิ้นสุด/2>=เริ่มทำ
    • ถ้าสิ้นสุด mod 2 เหมือนกับ 1 แล้ว
      • จบ :=จบ - 1
      • จบ :=สิ้นสุด/2
      • ct :=ct + 2
    • มิฉะนั้น
      • สิ้นสุด:=สิ้นสุด/2
      • ct :=ct + 1
  • ct :=ct +(end-start)
  • คืนสินค้า

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

ตัวอย่าง

class Solution:
   def solve(self, start, end):
      ct=0
      while(end/2>=start):
         if end%2==1:
            end-=1
            end=end/2
            ct+=2
         else:
            end=end/2
            ct+=1
      ct+=(end-start)
      return ct
ob = Solution()
print(ob.solve(5,11))

อินพุต

5,11

ผลลัพธ์

2