কম্পিউটার

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


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

  • 1 দ্বারা হ্রাস

  • 2 দ্বারা গুণ করুন

সুতরাং, যদি ইনপুটটি হয় start =2, end =7, তাহলে আউটপুট হবে 3, যেমন আমরা 4 পেতে 2 গুন করতে পারি, তারপর 8 পেতে 2 গুন করতে পারি এবং তারপর 7 পেতে 1 বিয়োগ করতে পারি।

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

  • উত্তর :=0

  • নিম্নলিখিতটি অসীমভাবে করুন, করুন

    • যদি শেষ <=শুরু হয়, তারপর

      • উত্তর দিন + শুরু - শেষ

    • অন্যথায় যখন শেষ বিজোড় হয়, তখন

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

    • অন্যথায়,

      • শেষ :=শেষের ভাগফল / 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

  1. পাইথনে গন্তব্যে পৌঁছানোর জন্য ন্যূনতম সংখ্যক উচ্চতা বাড়ানোর জন্য প্রোগ্রাম

  2. পাইথনে প্রদত্ত সংখ্যায় বিট 1-এর সংখ্যা খুঁজে বের করার প্রোগ্রাম

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

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