C# 程式用於查詢給定整數二進位制表示形式中連續 1 的最長長度


為了獲取連續的 1,使用按位左移運算子。下面是我們的十進位制數。

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

迴圈上述程式碼,直到 I 的值為 0,並使用變數獲取長度;這裡的計數。

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

這裡,我們採取的示例是 150。

150 的二進位制為 10010110。因此,我們有兩個連續的 1。

示例

 即時演示

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));
   }
}

輸出

2

更新時間:2020 年 6 月 22 日

252 次瀏覽

啟動您的職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.