该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
//把1到9填到9个格子,成线的3个格子加起来的和是15.
#include
#include
main()
{
long a=111111111L;
int fangan=0;
for(a;a<=999999999;++a)//暴力生成一个数.然后分析这个数是不是符合条件.
{
//首先得判断这个数各个位数上的数不相等.
int b[9]={0};//定义一个数组,用来存放各个数;
int c[9]={0};
int d=0;
for(int i=1;i<=9;++i)
{
if (i==1)
d=100000000;
else if(i==2)
d=10000000;
else if(i==3)
d=1000000;
else if(i==4)
d=100000;
else if(i==5)
d=10000;
else if(i==6)
d=1000;
else if(i==7)
d=100;
else if(i==8)
d=10;
else if(i==9)
d=1;
b[i-1]=a/d%10;
//printf ("%d",b[i-1]);//这几行测试一下看能不能跑
//if(i%3==0)
//printf("\n");
}
if((b[1]!=b[2])&&(b[1]!=b[3])&&(b[1]!=b[4])&&(b[1]!=b[5])&&(b[1]!=b[6])&&(b[1]!=b[7])&&(b[1]!=b[8])&&(b[2]!=b[3])&&(b[2]!=b[4])&&(b[2]!=b[5])&&(b[2]!=b[6])&&(b[2]!=b[7])&&(b[2]!=b[8])&&(b[3]!=b[4])&&(b[3]!=b[5])&&(b[3]!=b[6])&&(b[3]!=b[7])&&(b[3]!=b[8])&&(b[4]!=b[5])&&(b[4]!=b[6])&&(b[4]!=b[7])&&(b[4]!=b[8])&&(b[5]!=b[6])&&(b[5]!=b[7])&&(b[5]!=b[8])&&(b[6]!=b[7])&&(b[6]!=b[8])&&(b[7]!=b[8])&&(b[0]!=b[1])&&(b[0]!=b[2])&&(b[0]!=b[3])&&(b[0]!=b[4])&&(b[0]!=b[5])&&(b[0]!=b[6])&&(b[0]!=b[7])&&(b[0]!=b[8]))
{
if((b[0]*b[1]*b[2]*b[3]*b[4]*b[5]*b[6]*b[7]*b[8])!=0)
{
if ((b[0]+b[1]+b[2]==15 )&&((b[3]+b[4]+b[5])==15)&&((b[6]+b[7]+b[8])==15))
{
if ((b[0]+b[3]+b[6]==15 )&&((b[1]+b[4]+b[7])==15)&&((b[2]+b[5]+b[8])==15))
{
if(((b[2]+b[4]+b[6])==15)&&((b[0]+b[4]+b[8])==15))
{
printf ("%d %d %d\n",b[0],b[1],b[2]);
printf ("%d %d %d\n",b[3],b[4],b[5]);
printf ("%d %d %d\n",b[6],b[7],b[8]);
fangan=fangan+1;
printf("\n方案:%d\n",fangan);
printf("_____________________\n");
printf("_____________________\n");
//system("pause");
}
}
}
}
}
}
}