棋盘问题的python代码
时间: 2023-11-12 12:10:53 浏览: 55
以下是一个简单的棋盘问题的Python代码示例,它使用递归方法来解决问题:
```python
def print_board(board):
for row in board:
print(" ".join(row))
def is_valid(board, row, col):
for i in range(len(board)):
if board[row][i] == "Q" or board[i][col] == "Q":
return False
for i in range(len(board)):
for j in range(len(board)):
if (i+j == row+col) or (i-j == row-col):
if board[i][j] == "Q":
return False
return True
def solve(board, row):
if row >= len(board):
return True
for col in range(len(board)):
if is_valid(board, row, col):
board[row][col] = "Q"
if solve(board, row+1):
return True
board[row][col] = "."
return False
n = int(input("请输入棋盘大小:"))
board = [["."]*n for _ in range(n)]
if solve(board, 0):
print_board(board)
else:
print("无解!")
```
该代码首先定义了三个函数:
1. `print_board`:用于打印棋盘;
2. `is_valid`:用于检查在当前位置放置皇后是否合法;
3. `solve`:用于解决棋盘问题的递归函数。
在主函数中,首先从用户输入中获取棋盘大小n,然后创建一个大小为n*n的棋盘,并通过调用`solve`函数来解决问题。如果有解,就打印棋盘;否则,输出“无解!”。