log:IndexError:列表分配索引超出范围
我无法修复.list分配索引超出范围。你能救我吗?
j=1
n=int(input())
flag=[]*29
a=[]*29
for i in range(len(a)):
a[i]=1.0/(i+2)
for j in range(2**29):
temp=j
index=0
sum=0
while temp>0 and index<29:
flag[index]=temp%2
index=index+1
sum+=(temp%2)*a[index]
temp=temp/2
if sum==1:
count=0
index=index+1
for i in range(index):
if flag[i]==1:
count+=1
if count==n:
for i in range(len(flag)):
if flag[i]!=0:
print(flag[i]+"/"+(i+2)+"")
答案 0 :(得分:0)
不确定这段代码应该做什么,但我建议你像这样初始化你的列表:
N = 29
flag = [None] * N
a = [1.0 / (i + 2) for i in range(N)]
如果您只是[] * 29
,则列表仍为空,就像29 * 0
仍为0
一样。
之后似乎有更多的错误,但不知道代码应该做什么,也无法建议如何修复它。