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

Chương trình tìm chuỗi 1s chạy liên tiếp dài nhất ở dạng nhị phân của n trong Python

Giả sử chúng ta có một giá trị không âm n, chúng ta phải tìm độ dài của lần chạy liên tiếp dài nhất là 1s trong biểu diễn nhị phân của nó.

Vì vậy, nếu đầu vào là n =1469, thì đầu ra sẽ là 4, vì biểu diễn nhị phân của 156 là "10110111101", vì vậy có bốn số 1 liên tiếp

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • số lượng:=0
  • while n không giống 0, do
    • n:=n AND (n sau khi dịch sang trái một bit)
    • count:=count + 1
  • số lượng trả lại

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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

   return count

n = 1469
print(solve(n))

Đầu vào

1469

Đầu ra

4