我必须找到整数的二进制间隔。
正整数N内的二进制间隙是连续零的任何最大序列,在N的二进制表示形式中,两端均被1包围。
例如:N = 1041二进制:10000010001结果:5(5个零,并用1包围)
下面是我的代码,尽管bin_no [22]为1,但是if语句从不进入内部。
def solution(N):
bin_no = f'{N:32b}'
print(len(bin_no))
count = []
for i in range(len(bin_no)):
if bin_no[i] == 1:
count[i] = 0
j=i
while(bin_no[j+1] != 1):
count[i] +=1
j +=1
print (count[i])
print(solution(529))