#include<stdlib.h>
#include <stdio.h>
#include<time.h>
#include<math.h>
#define SUM_DATA 15
#define NUM 3
int nArray[NUM][NUM] ={0};
int GetResult(int nArry[][NUM],int size)
{
int sum=0;
for(int i=0; i<size; i++)
{
sum=0;
for(int j=0; j<size; j++)
{
sum+=nArry[i][j];
}
if(sum!=SUM_DATA)
return 1;
}
for(int j=0; j<size; j++)
{
sum=0;
for(int i=0; i<size; i++)
{
sum+=nArry[i][j];
}
if(sum!=SUM_DATA)
return 1;
}
sum=0;
for(int i=0; i<size; i++)
{
for(int j=0; j<size; j++)
{
if(i==j)
sum+=nArry[i][j];
}
}
if(sum!=SUM_DATA)
return 1;
sum=0;
for(int i=0; i<size; i++)
{
for(int j=0; j<size; j++)
{
if(i+j==size-1)
sum+=nArry[i][j];
}
}
if(sum!=SUM_DATA)
return 1;
return 0;
}
void SetData()
{
for(int k1=1; k1<=9; k1++)
{
nArray[0][0]=k1;
for(int k2=1; k2<=9; k2++)
{
if(k2==k1)
continue;
nArray[0][1]=k2;
for(int k3 =1; k3<=9; k3++)
{
if(k3==k1||k3==k2)
continue;
nArray[0][2]=k3;
for(int k4 =1; k4<=9; k4++)
{
if(k4==k1||k4==k2||k4==k3)
continue;
nArray[1][0]=k4;
for(int k5=1; k5<=9; k5++)
{
if(k5==k1||k5==k2||k5==k3||k5==k4)
continue;
nArray[1][1]=k5;
for(int k6=1; k6<=9; k6++)
{
if(k6==k1||k6==k2||k6==k3||k6==k4||k6==k5)
continue;
nArray[1][2]=k6;
for(int k7=1; k7<=9; k7++)
{
if(k7==k1||k7==k2||k7==k3||k7==k4||k7==k5||k7==k6)
continue;
nArray[2][0]=k7;
for(int k8=1; k8<=9; k8++)
{
if(k8==k1||k8==k2||k8==k3||k8==k4||k8==k5||k8==k6||k8==k7)
continue;
nArray[2][1]=k8;
for(int k9=1; k9<=9; k9++)
{
if(k9==k1||k9==k2||k9==k3||k9==k4||k9==k5||k9==k6||k9==k7||k9==k8)
continue;
nArray[2][2]=k9;
if(!GetResult(nArray,3))
{
for(int i=0; i<NUM;i++)
{
for(int j=0; j<NUM;j++)
printf("%d\t",nArray[i][j]);
printf("\n");
}
printf("\n");
//return ;
}
}
}
}
}
}
}
}
}
}
}
int main()
{
SetData();
getchar();
return 0;
}
运行结果:
2 7 6
9 5 1
4 3 8
2 9 4
7 5 3
6 1 8
4 3 8
9 5 1
2 7 6
4 9 2
3 5 7
8 1 6
6 1 8
7 5 3
2 9 4
6 7 2
1 5 9
8 3 4
8 1 6
3 5 7
4 9 2
8 3 4
1 5 9
6 7 2