Task
Given a base- integer, , convert it to binary (base-). Then find and print the base- integer denoting the maximum number of consecutive 's in 's binary representation.
Sample Case 1:
The binary representation of 5 is 101 , so the maximum number of consecutive 1's is 1 .
Sample Case 2:
The binary representation of 13 is 1101 , so the maximum number of consecutive 1's is 2 .
CODE
#!/bin/python3
import math
import os
import random
import re
import sys
#此线上测试不允许调用numpy
def ten_to_two(n):
while n !=0:
data.append(n%2)
n=n//2
return data
def count(data):
d={}
d[0]=data[0] #用字典来记录连续1的个数
for i in range(1,len(data)):
d[i]=data[i] #最先,让等于1的元素计数为1
if data[i-1]==data[i]==1: #如果前面的元素和本元素相等且等于1,就计数=前一元素的计数+1
d[i]=d[i-1]+1
return max(d.values())
if __name__ == '__main__':
n = int(input())
data=[]
data=ten_to_two(n)
result=count(data)
print(int(result))