কম্পিউটার টিউটোরিয়াল

পাইথনে নাম্বার রিডিউসিং গেমের বিজয়ী খুঁজে বের করা

আমল এবং বিমল একটি সংখ্যা n দিয়ে গেম খেলছে। নিয়ম:

  • যদি n ২-এর ঘাত হয়, ২ দিয়ে ভাগ করুন।
  • অন্যথায় n-র চেয়ে ছোট সবচেয়ে বড় ২-এর ঘাত বিয়োগ করুন।
  • যিনি n কে ১ করবেন সে জিতবে। আমল প্রথম খেলে।

উদাহরণ

ইনপুট: n = 19

আউটপুট: Amal

১৯ → ১৬ (আমল) → ৮ (বিমল) → ৪ (আমল) → ২ (বিমল) → ১ (আমল)। আমল জিতল।

সমাধান পদ্ধতি

  1. res := 0
  2. while n > 1:
    • b := 1; while b*2 < n: b *= 2 (n-র চেয়ে ছোট বড় ২-এর ঘাত)
    • n := n - b
    • res += 1
  3. যদি res % 2 == 0: "Amal", অন্যথায় "Bmal"।

পাইথন ইমপ্লিমেন্টেশন

def solve(n):
    res = 0
    while n > 1:
        b = 1
        while b * 2 < n:
            b *= 2
        n -= b
        res += 1
    return 'Amal' if res % 2 == 0 else 'Bmal'

# টেস্ট
n = 19
print(solve(n))  # আউটপুট: Amal

ইনপুট

19

আউটপুট

Amal
  1. পাইথনে ভালো ট্রিপলেটের সংখ্যা গণনা করার প্রোগ্রাম

  2. পাইথনে ভালো জোড়ার সংখ্যা গণনা করার প্রোগ্রাম

  3. পাইথনে পুনরাবৃত্ত ইন্টিজার ডিলিট গেম জয় করার জন্য মুভের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে লিস্ট থেকে সর্বোচ্চ সংখ্যা বের করা