연속적인 1을 가져오려면 Bitwise Left Shift Operator를 사용하십시오. 다음은 십진수입니다.
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