八皇后问题,python 2.7 代码
# Hello World program in Python
print "Hello World!\n"
result=[0,0,0,0,0,0,0,0]
def call8(a):
if (a==8) :
printq(result)
return
for i in range(8):
if isok(a,i):
result[a]=i
call8(a+1)
def isok(a,col):
lleftup=col-1
rrightup =col+1
for i in range(a-1,-1,-1):
if result[i]==col:return False
if lleftup>=0:
if result[i]==lleftup:return False
if rrightup <8:
if result[i]==rrightup:return False
lleftup-=1
rrightup+=1
return True
kkk=0
def printq(result):
for i in range(0,8):
for j in range(0,8):
if result[i]==j :
print "Q",
else :print "*",
print("----->>>"+str(i))
global kkk
kkk+=1
print "=============================",kkk
call8(0) #from 0 ,
print kkk
kkk 说明一共有92种摆放方法,递归调用。
网友评论