Computer >> Máy Tính >  >> Lập trình >> C#

Chương trình C # để tìm độ dài của 1 dài nhất liên tiếp trong Biểu diễn nhị phân của một số nguyên cho trước

Để tìm nạp các số 1 liên tiếp, hãy sử dụng Toán tử dịch chuyển trái theo chiều dọc. Đây là số thập phân của chúng tôi.

i = (i & (i << 1));

Vòng lặp ở trên cho đến khi giá trị của I là 0 và lấy độ dài bằng cách sử dụng một biến; đếm ở đây.

while (i != 0) {
   i = (i & (i << 1));
   count++;
}

Ví dụ chúng tôi đã lấy ở đây là 150.

Nhị phân cho 150 là 10010110. Do đó, chúng ta có hai giá trị nhị phân liên tiếp.

Ví dụ

using System;
class Demo {
   private static int findConsecutive(int i) {
      int count = 0;
      while (i != 0) {
         i = (i & (i < 1));
         count++;
      }
      return count;
   }

   // Driver code
   public static void Main() {
      // Binary or 150 is 10010110
      Console.WriteLine(findConsecutive(150));
   }
}

Đầu ra

2