问题:将给定的十进制数转换为二进制数并统计连续的1并显示
示例案例1:
5的二进制表示为101,因此连续1的最大数量为1。
示例案例2:
13 的二进制表示为 1101 ,因此连续 1 的最大数量为 2。
解决方案:
#!/bin/python3
import sys
n = int(input().strip())
result = []
counter = 1
def get_binary(num):
if num == 1:
result.append(num)
adj(result)
else:
result.append(num%2)
get_binary(int(num/2))
def adj(arr):
global counter
for x in range(0,len(arr)-1):
if arr[x] == 1 and (arr[x] == arr[x+1]):
counter += 1
print(counter)
get_binary(n)
它没有通过所有示例测试用例。我究竟做错了什么?
下面是一个可以运行的简化版本
def func(num):
return max(map(len, bin(num)[2:].split('0')))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)