ধরুন আমাদের একটি অ-ঋণাত্মক মান n আছে, আমাদের এটির বাইনারি উপস্থাপনায় 1s-এর দীর্ঘতম ক্রমাগত রানের দৈর্ঘ্য খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি n =1469-এর মত হয়, তাহলে আউটপুট হবে 4, কারণ 156-এর বাইনারি উপস্থাপনা হল "10110111101", তাই পরপর চারটি 1s আছে
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- গণনা :=0
- যখন n 0 এর মত নয়, do
- n :=n এবং n (এক বিট বাম দিকে সরানোর পর)
- গণনা :=গণনা + 1
- রিটার্ন গণনা
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(n): count = 0 while n != 0: n = n & (n << 1) count = count + 1 return count n = 1469 print(solve(n))
ইনপুট
1469
আউটপুট
4