ধরুন আমাদের একটি সংখ্যা n আছে। আমাদের পরীক্ষা করতে হবে যে সংখ্যাটির প্রথম এবং শেষ অবস্থানে শুধুমাত্র দুটি সেট বিট আছে কি না।
সুতরাং, যদি ইনপুটটি n =17 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ n-এর বাইনারি উপস্থাপনা 10001, প্রথম এবং শেষ অবস্থানে শুধুমাত্র দুটি 1 আছে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি n 1 এর মত হয়, তাহলে
- সত্য ফেরান
- সত্য ফেরত দিন যদি n - 1 এর শক্তি 2 হয়, অন্যথায় মিথ্যা
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
def is_pow_of_two(n):রিটার্ন (n &n-1) ==0def solve(n):if n ==1:return True return is_pow_of_two (n-1) n =17print(solve(n))প্রে>ইনপুট
17আউটপুট
সত্য