一、题目
二、示例
三、代码
# 代码 1
while True:
try:
n = bin(int(input()))[2:].split('0')
long = 0
for i in n:
temp = i.count('1')
if temp > long:
long = temp
print(long)
except:
break
# 代码 2
while True:
try:
n = bin(int(input()))[2:]
result = 0
temp = 0
for i in range(0,len(n)):
if n[i] == '1':
temp += 1
elif n[i] != '1' and temp > result:
result = temp
temp = 0
else:
temp = 0
if temp > result:
result = temp
print(result)
except:
break
四、算法说明
代码 1,将整数转化为二进制,然后用'0'
进行切片,遍历计算每个切片中'1'
的个数,输出最大的值。
代码 2,遍历二进制,如果是'1'
,将连续个数temp + 1
,否则,将连续个数temp
与最大值result
比较,进行赋值result = temp
和初始化工作temp = 0
,返回结果。
胡萝卜
2022年3月2日14:42:51
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |