কম্পিউটার

পাইথনে এক নম্বর থেকে অন্য নম্বর তৈরি করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি সংখ্যার শুরু এবং আরেকটি সংখ্যার শেষ আছে (শুরু <শেষ), আমাদের এই অপারেশনগুলি ব্যবহার করে শুরু থেকে শেষ রূপান্তর করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করতে হবে -

  • 1 দ্বারা বৃদ্ধি
  • 2 দ্বারা গুণ করুন

সুতরাং, যদি ইনপুটটি হয় start=5, end=11, তাহলে আউটপুট হবে 2, যেমন আমরা 10 পেতে 2 গুন করতে পারি, তারপর 11 যোগ করতে পারি।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ct:=0
  • শেষ হওয়ার সময়/2>=শুরু করুন, করুন
    • যদি শেষ মোড 2 1 এর মত হয়, তাহলে
      • শেষ :=শেষ - 1
      • শেষ :=শেষ/2
      • ct :=ct + 2
    • অন্যথায়,
      • end:=end/2
      • ct :=ct + 1
  • ct :=ct +(শেষ-শুরু)
  • সিটি ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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

  1. পাইথনে B-এর আগে A-কে তৈরি করতে ন্যূনতম সংখ্যক অক্ষর মুছে ফেলার জন্য প্রোগ্রাম

  2. পাইথনে লক্ষ্যে পৌঁছানোর জন্য প্রয়োজনীয় প্রদত্ত অপারেশনের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে তালিকাকে সুষম করতে দুই প্রান্ত থেকে ন্যূনতম সংখ্যক মুছে ফেলার প্রয়োজনীয়তা খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে একটি স্ট্রিং সাবস্ট্রিং অন্যটির জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করার প্রোগ্রাম