题目描述
求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
本题含有多组样例输入。
输入描述:
输入一个byte数字
输出描述:
输出转成二进制之后连续1的个数
示例1
输入
3
5
输出
2
1
说明
3的二进制表示是11,最多有2个连续的1。
5的二进制表示是101,最多只有1个连续的1。
代码实现如下:
lists = []
while True:
try:
lists.append(int(input()))
except:
break
for i in lists:
str1 = "{0:b}".format(i)
#print(str1)
num_value = 0
num_1 = 0
for j in str1:
if j == '1':
num_1 += 1
else:
num_1 = 0
if num_1 > num_value:
num_value = num_1
print(num_value)