题目
题目描述
*8.24(检验数独的解决方案)程序清单8-4通过检测棋盘上的每个数字是否是有效的,从而检验一个解决方案是否是有效的。
重写该程序,通过检验是否每行、每列、每个小方盒中具有数字1到9来检测解决方案的有效性
程序清单8-4
import java.util.Scanner;
public class qingdan {
public static void main(String[] args) {
// Read a Sudoku solution
int[][] grid = readASolution();
System.out.println(isValid(grid) ? "Valid solution" : "Invalid solution");
}
/** Read a Sudoku solution from the console */
public static int[][] readASolution(){
// Create a Scanner
Scanner input = new Scanner(System.in);
System.out.println("Enter a Sudoku puzzle solution:");
int[][] grid = new int[9][9];
for (int i = 0 ; i < 9 ; i++){
for (int j = 0 ; j < 9 ; j++){
grid[i][j] = input.nextInt();
}
}
return grid;
}
/** Check whether a solution is valid */
public static boolean isValid(int[][] grid){
for (int i = 0 ; i < 9 ; i++)
for (int j = 0 ; j < 9 ; j++)
if (grid[i][j] < 1