ধরুন অমল আর বিমল একটা খেলা খেলছে। তাদের একটি সংখ্যা n আছে এবং তারা পরীক্ষা করে যে এটি 2 এর শক্তি কিনা। যদি এটি হয়, তারা এটিকে 2 দ্বারা ভাগ করে। অন্যথায়, তারা এটিকে পরবর্তী নিম্ন সংখ্যা দ্বারা কমিয়ে দেয় যা 2 এর পাওয়ারও। অমল সবসময় খেলা শুরু করে, তারপর আমাদের বিজয়ীর নাম খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি n =19 এর মত হয়, তবে আউটপুটটি হবে Amal কারণ, 19 2 এর শক্তি নয়, তাই Amal এটিকে 16-এ কমিয়ে দেয়, তারপর বিমল 2 দিয়ে ভাগ করে 8 করে, তারপর আবার Amal 2 দ্বারা ভাগ করে। 4, তারপর বিমল এটিকে 2 করে এবং অবশেষে অমল এটিকে 1 করতে ভাগ করে এবং গেমটি জিতে নেয়।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- res :=0
- যখন n> 1, do
- b :=1
- যখন b * 2
- b :=b * 2
- n :=n - b
- res :=res + 1
- 'আমল' ফেরত দিন
- 'Bmal' ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(n): res = 0 while(n > 1): b = 1 while(b * 2 < n): b *= 2 n -= b res += 1 if res % 2 == 0: return 'Amal' else: return 'Bmal' n = 19 print(solve(n))
ইনপুট
19
আউটপুট
Amal