程式設計(一) 第十三週 共筆 === ## 上課程式 ```python= # n: n皇后問題 # row : 要我負責的row # ans : 之前放的狀況 # col : col是否可放 # us : 右上斜線, slash # ds : 右下斜線, back slash def queen(n, row, ans, col, us, ds) : if n == row : for i in range(n) : print(ans[i]) print() return for c in range(n) : # check each column if col[c] and us[row+c] and ds[row-c+n-1] : ans[row][c] = 1 col[c], us[row+c], ds[row-c+n-1] = False, False, False queen(n,row+1,ans,col,us,ds) ans[row][c] = 0 col[c], us[row+c], ds[row-c+n-1] = True, True, True def main() : n = int(input()) queen(n, 0,[[0 for y in range(n)] for x in range(n)],[True for i in range(n)],[True for i in range(2*n-1)],[True for i in range(2*n-1)]) main() ```