def main():
lst=[2,3,4,4,1,2,2,5,2,2,4]#从12点位置开始,顺时针把所有数字填在此处
i = 0
while 1:
if walk(lst[:], i):
#print i
break
i+=1
def walk(lst, i):
a=lst[i]
lst[i] = 0
ppp = 0
for s in lst:
ppp += s
if s:
break
if ppp == 0:
print i, a
return True
p1=a+i
p2=i-a
p1 = fixpos(len(lst), p1)
p2 = fixpos(len(lst), p2)
try:
if lst[p1] == 0 and lst[p2] == 0:
return False
except:
print p1,p2
raise
if walk(lst[:], p1):
print i,a
return True
if walk(lst[:], p2):
print i,a
return True
return False
def fixpos(l,p):
if p >= l:
p = p-l
if p < (0-l):
p +=l
return p
if __name__ == '__main__':
main()
修改上面Lst的值,将文件另存为a.py, 安装Python, 命令行中执行python a.py
按输出的结果从下往上执行,输出的结果第一列为位置(0表示1,1表示2,...), 第二列为该位置上的数字