9*9数独问题
import java.math.BigInteger;
import java.util.Scanner;
public class t8 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int [][]a=new int[9][9];
for (int i = 0; i < a.length; i++) {
String s=sc.next();
for (int j = 0; j < a.length; j++) {
a[i][j]=s.charAt(j)-'0';
}
}
f(a,0,0);
}
private static void f(int[][] a, int x, int y) {
// TODO Auto-generated method stub
if (x>=9) {
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
System.out.print(a[i][j]+" ");
}System.out.println();
}
return;
}
if (y==9) {
f(a,x+1,0);
return;
}
if (a[x][y]!=0) {
f(a,x,y+1);
return;
}
for (int i = 1; i <=9; i++) {
if (ff(a,x,y,i)) {
a[x][y]=i;
f(a,x,y+1);
a[x][y]=0;
}
}
return;
}
private static boolean ff(int[][] a, int x, int y, int shu) {
// TODO Auto-generated method stub
for (int i = 0; i < a.length; i++) {
if (a[i][y]==shu) {
return false;
}
}
for (int i = 0; i < a.length; i++) {
if (a[x][i]==shu) {
return false;
}
}
for (int i =x/3*3; i <(x/3+1)*3; i++) {
for (int j =y/3*3; j <(y/3+1)*3; j++) {
if (a[i][j]==shu) {
return false;
}
}
}
return true;
}
}