数独问题:使一个9*9的矩阵中,每一行、每一列、每一个九宫格( 即3*3矩阵 )内的数字均含1-9中的数字,且每一行、每一列、每一个九宫格( 即3*3矩阵 )内的数字不能重复。
如同所示就是一个数独问题的矩阵,我们要将矩阵中的空白位置填入符合条件的1-9的数字。
//数独文件 其中写的就是数独矩阵
005300000
800000020
070010500
400005300
010070006
003200080
060500009
004000030
000009700
//分治回溯 回溯的应用 之 数独问题
/*
判断填入的数据是否满足条件 一行中没有相同的 并且 一列中没有相同的 并且 当前方格所在的子方块中没有相同的
虽然数独问题只有一个解 但是我们解决数独问题时 是向多个解的方向去求解的
*/
public class SudoKu {
//表示第count个解
private static int count = 0;
//表示存放数独数据的矩阵容器
private static int[][] board= new int[9][9];
public static void main(String[] args) throws IOException {
readFile("SudoKu_data"); //读取数独文件
solve(0, 0); //向数独矩阵中添加元素
}
//向数独矩阵中添加元素
/*
向下一个位