একটি ধনাত্মক সংখ্যা এবং বিটের পরিসর দেওয়া থাকলে, সেই পরিসরে কতগুলো অনসেট বিট (০) আছে তা গণনা করা হয়।
ইনপুট : n = 50, শুরুর অ্যাড্রেস = ২, শেষ অ্যাড্রেস = ৫ আউটপুট : ২
বিট ২ থেকে ৫ পর্যন্ত '২'টি অনসেট বিট রয়েছে।
অ্যালগরিদম
ধাপ ১: n কে bin() দিয়ে বাইনারি রূপান্তর করুন।
ধাপ ২: প্রথম দুই ক্যারেক্টার ('0b') সরিয়ে দিন।
ধাপ ৩: স্ট্রিংটি উল্টিয়ে দিন।
ধাপ ৪: st-1 থেকে ed পর্যন্ত (শেষটি বাদ দিয়ে) '০' গুনুন।
উদাহরণ কোড
# নির্দিষ্ট পরিসরের অনসেট বিট গণনা করার ফাংশন
def countunsetbits(n, st, ed):
# n কে বাইনারি রূপান্তর
bi = bin(n)
# প্রথম দুই ক্যারেক্টার সরান
bi = bi[2:]
# স্ট্রিং উল্টিয়ে দিন
bi = bi[-1::-1]
# st-1 থেকে ed পর্যন্ত '০' গণনা করুন
print(len([bi[i] for i in range(st-1, ed) if bi[i] == '0']))
# ড্রাইভার প্রোগ্রাম
if __name__ == "__main__":
n = int(input("ধনাত্মক সংখ্যা দিন ::>"))
st = int(input("শুরুর পজিশন"))
ed = int(input("শেষ পজিশন"))
countunsetbits(n, st, ed)
আউটপুট
ধনাত্মক সংখ্যা দিন ::> 50 শুরুর পজিশন 2 শেষ পজিশন 5 2