Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 n의 이진 형식으로 1의 가장 긴 연속 실행을 찾는 프로그램

<시간/>

음수가 아닌 값 n이 있다고 가정하고 이진 표현에서 가장 긴 연속 1의 길이를 찾아야 합니다.

따라서 입력이 n =1469와 같으면 156의 이진 표현이 "10110111101"이므로 4개의 연속 1이 있으므로 출력은 4가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 카운트:=0
  • n이 0과 같지 않은 동안 do
    • n :=n AND (왼쪽으로 1비트 이동 후 n)
    • 카운트 :=카운트 + 1
  • 반환 횟수

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(n):
   count = 0
   while n != 0:
      n = n & (n << 1)
      count = count + 1

   return count

n = 1469
print(solve(n))

입력

1469

출력

4