程式設計(一) 第十三週 共筆
===
## 上課程式
```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()
```