---
# System prepended metadata

title: 程式設計(一) 第十三週 共筆

---

程式設計(一) 第十三週 共筆
===

## 上課程式
```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()
```
