package bee;
import java.util.Scanner;
public class Sudoku {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
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();
if(isvalid(grid)) System.out.println("valid solution");
else System.out.println("invalid solution");
}
public static boolean isvalid(int [][]grid)
{for(int i=0;i<9;i++)
if(!valid(grid[i]))
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(!valid(column))
return false;
}
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{ int list[] = new int[9];
int k=0;
for(int row=3*i;row<3*i+3;row++)
for(int col=3*j;col<3*j+3;col++)
list[k++]=grid[row][col];
if(!valid(list)) return false;
}
return true;}
public static boolean valid(int []grid)
{int temp[]=new int [9];
System.arraycopy(grid,0,temp,0,9);
java.util.Arrays.sort(temp);
for(int i=0;i<9;i++)
if(temp[i]!=i+1) return false;
return true;
}
}
数独判断程序
最新推荐文章于 2024-09-16 14:02:00 发布