num=int(input()) # 1.把十进制转化为二进制 str1='' while num > 0: num1=num%2 num=num//2 str1=str1+str(num1) # str倒序下就是二进制的数 str2=str1[::-1] # 2.二进制数判断1的最大连接数 # (1)如果二进制数长度等于1,返回1(因为题目数据定义,所以次数不会等于0) if len(str2)==1: print(1) else: # (2)如果二进制长度大于1.遍历二进制每个字符,如果当前字符与上一个字符相等且等于1,count加1,并且存到list1中 count=0 list1=[] for i in range(1,len(str2)): if int(str2[i])==1 and str2[i]==str2[i-1]: count=count+1 list1.append(count) # (3)不存在当前字符与上一个字符均等于1,count重置为0 else: count=0 # (4)如果list1不存在数据,返回1 if len(list1)==0: print(1) else: # (5)如果list1有数据,取list1最大值加1 print(max(list1)+1)