ধরুন আমাদের একটি সংখ্যা n আছে। n এর বাইনারি উপস্থাপনাটি প্যালিনড্রোম কিনা তা আমাদের পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি n =9 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ 9-এর বাইনারি উপস্থাপনা হল 1001, যা প্যালিনড্রোম।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- উত্তর :=0
- যখন num> 0, do
- উত্তর :=উত্তর * ২
- যদি সংখ্যাটি বিজোড় হয়, তাহলে
- উত্তর :=উত্তর XOR 1
- সংখ্যা :=সংখ্যা / 2
- উত্তর ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def reverse_binary(num) : ans = 0 while (num > 0) : ans = ans << 1 if num & 1 == 1 : ans = ans ^ 1 num = num >> 1 return ans def solve(n) : rev = reverse_binary(n) return n == rev n = 9 print(solve(n))
ইনপুট
9
আউটপুট
True