突然发现中文不是很好,不是很好讲述标题。
还是以实例说明:
输入5,二进制为101,没有1连续出现,即连续出现1的次数是1,结果为1
输入13,二进制1101,11连续出现,和为2,结果为2
你觉得应该怎么解呢?不妨下方留言。
这里提供一个很精炼的答案:
n = int(input())
numbers = str(bin(n)[2:]).split('0')
lenghts = [len(num) for num in numbers]
print(max(lenghts))
先将数字转为2进制,然后按0分割,求取长度。因为是二进制,某个位最大数位1,所以长度就是和。
网友评论