一个和为15的棋盘游戏,需要将1到9的9个数字填入3*3棋盘的方格中。行、列、对角线之和为15,请指教。
//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