//2.橫線豎線的判斷是錯誤的。
//3.因為只形成了1組數據,不符合要求,所以沒有運行結果。代碼已被修改。請測試。
公共類測試3
{
int[][]數組;
int count = 1;
公共測試3()
{
array = new int[3][3];
}
公共void showgrid()
{
int i,j;
for(I = 0;我& lt數組.長度;i++)
{
for(j = 0;j & lt數組[i]。長度;j++)
system . out . print(array[I][j]+" ");
system . out . println();
}
system . out . println();
}
私有布爾數據檢查()
{
if(數組[0][0]+數組[0][1]+數組[0][2]!=15)
返回false
if(數組[1][0]+數組[1][1]+數組[1][2]!=15)
返回false
if(array[2][0]+array[2][1]+array[2][2]!=15)
返回false
if(array[0][0]+array[1][0]+array[2][0]!=15)
返回false
if(數組[0][1]+數組[1][1]+數組[2][1]!=15)
返回false
if(array[0][2]+array[1][2]+array[2][2]!=15)
返回false
if(數組[0][0]+數組[1][1]+數組[2][2]!=15)
返回false
if(array[0][2]+array[1][1]+array[2][0]!=15)
返回false
返回true
}
公共空排列()
{
int sum = 1;
for(int I = 1;我& lt=9;i++){
for(int j = 1;j & lt=9;j++){
if(j==i)繼續;
for(int k = 1;k & lt=9;k++){
if(k==i||k==j)繼續;
for(int l = 1;l & lt=9;l++){
if(l==i||l==j||l==k)繼續;
for(int m = 1;m & lt=9;m++){
if(m==i||m==j||m==k||m==l)繼續;
for(int n = 1;n & lt=9;n++){
if(n = = I | | n = = j | | n = = k | | n = = l | | n = = m)繼續;
for(int o = 1;o & lt=9;o++){
if(o = = I | | o = = j | | o = = k | | o = = l | | o = = m | | o = = n)繼續;
for(int p = 1;p & lt=9;p++){
if(p = = I | | p = = j | | p = = k | | p = = l | | p = = m | | p = = n | | p = = o)繼續;
for(int q = 1;q & lt=9;q++)
{
if(q = = I | | q = = j | | q = = k | | q = = l | | q = = m | | q = = n | | q = = o | | q = = p)繼續;
array[0][0]= I;
array[0][1]= j;
array[0][2]= k;
array[1][0]= l;
array[1][1]= m;
array[1][2]= n;
array[2][0]= o;
array[2][1]= p;
array[2][2]= q;
if(datacheck())
{
system . out . println(" = = "+sum+" = = ");
sum++;
show grid();
}
}}}}}}}}}
}
公共靜態void main(String args[])
{
test3t = new Test3();
t . arrange();
}
}
-操作結果。
==1==
2 7 6
9 5 1
4 3 8
==2==
2 9 4
7 5 3
6 1 8
==3==
4 3 8
9 5 1
2 7 6
==4==
4 9 2
3 5 7
8 1 6
==5==
6 1 8
7 5 3
2 9 4
==6==
6 7 2
1 5 9
8 3 4
==7==
8 1 6
3 5 7
4 9 2
==8==
8 3 4
1 5 9
6 7 2