一起创业网-为互联网创业者服务

数独程序怎么写

数独程序可以使用多种编程语言实现,包括Python、C++等。下面我将提供一个使用Python编写的数独求解器的示例代码,以及一个使用C++编写的数独求解器的示例代码。

Python数独求解器示例

```python

def is_valid(board, row, col, num):

检查行是否重复

for x in range(9):

if board[row][x] == num:

return False

检查列是否重复

for x in range(9):

if board[x][col] == num:

return False

检查3x3宫格是否重复

start_row, start_col = 3 * (row // 3), 3 * (col // 3)

for i in range(3):

for j in range(3):

if board[i + start_row][j + start_col] == num:

return False

return True

def solve_sudoku(board):

for row in range(9):

for col in range(9):

if board[row][col] == 0: 找到空格

for num in range(1, 10):

if is_valid(board, row, col, num):

board[row][col] = num 尝试填入数字

if solve_sudoku(board): 递归解决下一个空格

return True

board[row][col] = 0 回溯

return False 无法解决,返回False

return True 所有空格都填满,返回True

示例数独棋盘

sudoku_board = [

[5, 3, 4, 6, 7, 8, 9, 1, 2],

[6, 7, 2, 1, 9, 5, 3, 4, 8],

[1, 9, 8, 3, 4, 2, 5, 6, 7],

[8, 5, 9, 7, 6, 1, 4, 2, 3],

[4, 2, 6, 8, 5, 3, 7, 9, 1],

[7, 1, 3, 9, 2, 4, 8, 5, 6],

[9, 6, 1, 5, 3, 7, 2, 8, 4],

[2, 8, 7, 4, 1, 9, 6, 3, 5],

[3, 4, 5, 2, 8, 6, 1, 7, 9]

]

if solve_sudoku(sudoku_board):

for row in sudoku_board:

print(row)

else:

print("无解!")

```

C++数独求解器示例