先看一下代码吧,最近时间比较紧,注释和讲解过几天再上传。
有问题欢迎在评论区评论
#include<stdio.h>
int a[9]={0};
int b[9]={0};
int sum=0;
void check()
{
int i,j;
int r[8];
r[0]=a[0]+a[1]+a[2];
r[1]=a[3]+a[4]+a[5];
r[2]=a[6]+a[7]+a[8];
r[3]=a[0]+a[4]+a[8];
r[4]=a[2]+a[4]+a[6];
r[5]=a[0]+a[3]+a[6];
r[6]=a[1]+a[4]+a[7];
r[7]=a[2]+a[5]+a[8];
for(i=0;i<8;i++)
{
for(j=i+1;j<8;j++)
{
if(r[i]==r[j])
{
return ;
}
}
}
sum++;
}
void go(int i)
{
int n,m;
if(i>=9)
{
// printf("%d%d%d%d%d%d%d%d%d\n",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
check();
return ;
}
for(m=0;m<9;m++)
{
if(b[m]!=1)
{
b[m]=1;
a[i]=m+1;
go(i+1);
b[m]=0;
}
}
}
int main()
{
go(0);
printf("%d",sum/8);
return 0;
}