কনসিকিউটিভ ১'র পেতে, বিটওয়াইজ লেফট শিফট অপারেটর ব্যবহার করুন। এখানে আমাদের দশমিক সংখ্যাটি।
i = (i & (i << 1));
উপরের লুপটি চলানোর পর্যন্ত i-এর মান ০ হয়ে যায় এবং count ভেরিয়েবল ব্যবহার করে দৈর্ঘ্য বের করুন।
while (i != 0) {
i = (i & (i << 1));
count++;
}
এখানে আমরা ১৫০ উদাহরণ হিসেবে নিয়েছি।
১৫০-এর বাইনারি হলো 10010110। তাই, আমাদের দুটি কনসিকিউটিভ ১ আছে।
উদাহরণ
using System;
class Demo {
private static int findConsecutive(int i) {
int count = 0;
while (i != 0) {
i = (i & (i << 1));
count++;
}
return count;
}
// ড্রাইভার কোড
public static void Main() {
// ১৫০-এর বাইনারি 10010110
Console.WriteLine(findConsecutive(150));
}
}
আউটপুট
2