检验九宫格答案的正确性

来源:互联网 发布:西门子工业软件报价 编辑:程序博客网 时间:2024/05/20 18:19
import java.util.*;public class CheckSudokuSolution {public static void main(String[] args){int[][]grid=new int[9][9];Scanner input=new Scanner(System.in);System.out.println("Please enter your answer:");for(int i=0;i<9;i++){System.out.println("Please enter the row"+(i+1)+":");for(int j=0;j<9;j++){grid[i][j]=input.nextInt();}}System.out.println(isValid(grid)?"Valid solution":"Invalid solution");}public static boolean isValid(int[][] grid){for(int i=0;i<9;i++)if(is1To9(grid[i])==false)return false;for(int j=0;j<9;j++){int[] column=new int[9];for(int i=0;i<9;i++)column[i]=grid[i][j];        if(is1To9(column)==false)return false;}for(int i=0;i<3;i++)for(int j=0;j<3;j++){   int k=0;int[] list=new int[9];for(int row =3*i;row<3*i+3;row++)for(int column=3*j;column<3*j+3;column++){list[k]=grid[row][column];k++;}if(is1To9(list)==false)return false;}return true;}    public static boolean is1To9(int[] list){    int temp[]=new int[list.length];    System.arraycopy(list, 0, temp, 0, list.length);    Arrays.sort(temp);    for(int i=0;i<9;i++)    {    if(temp[i]!=i+1)    return false;    }    return true;    }}


                                             
0 0