2019-06-04

2019-06-04  本文已影响0人  木马音响积木

八皇后问题,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种摆放方法,递归调用。

上一篇 下一篇

猜你喜欢

热点阅读