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 次浏览

启动您的职业生涯

完成课程即可获得认证

开始
广告