原题里定义的子函数有两句缩进不对
def route(p):
flag=False
if q[p]==0:
s="0"
i=p
while pre[i]!=-1:
s=str(q[pre[i]])+"-->"+s
i=pre[i]
print(s)
flag=True
return flag
n=int(input("请输入传球人数:"))
m=int(input("请输入传球次数:"))
print("传球方案为:")
pre=[0]*2**(m+1)
q=[0]*2**(m+1)
head=tail=0
pre[0]=-1
q[tail]=0
tail+=1
i=0;sum=0
while i<m:
for j in range(2**i):
q[tail]=(q[head]+1)%n
q[tail+1]=(q[head]+n-1)%n
pre[tail]=head
pre[tail+1]=head
if i==m-1:
if route(tail):
sum+=1
if route(tail+1):
sum+=1
tail=tail+2
head+=1
i+=1
print("共有方案数:",sum)