ধরুন, একটি সংখ্যা n দেওয়া হয়েছে। আমাদের যাচাই করতে হবে যে এর বাইনারি রিপ্রেজেন্টেশনে সব বিট কি 1 (সেট) আছে।
যেমন, ইনপুট n = 255 হলে আউটপুট হবে True, কারণ ২৫৫-এর বাইনারি হলো 11111111।
সমাধানের ধাপসমূহ
- যদি
number == 0হয়, তবে False ফেরত দিন। while number > 0:- যদি
(number & 1) == 0হয় (অর্থাৎ LSB ০), তবে False ফেরত দিন। number = number >> 1(রাইট শিফট)۔
- যদি
- লুপ শেষ হলে True ফেরত দিন।
উদাহরণ কোড
def solve(number):
if number == 0:
return False
while number > 0:
if (number & 1) == 0:
return False
number = number >> 1
return True
n = 255
print(solve(n))
ইনপুট
255
আউটপুট
True