本文共 1110 字,大约阅读时间需要 3 分钟。
#####这是官方的提示
笨笨有话说: 我最喜欢这类题目了。既然九宫幻方一共也没有多少,我就不辞辛劳地一个一个写出来好了。也不能太过分,好歹用个数组。
#####思路:九宫格的组合一共有8种情况
6 7 28 3 42 9 46 1 8
1 5 91 5 97 5 37 5 3
8 3 46 7 26 1 82 9 4
2 7 64 3 84 9 28 1 6
9 5 19 5 13 5 7 3 5 7
4 3 82 7 68 1 64 9 2
注意: 可能有多个组合都符合 比如 :0 7 0 0 0 0 0 0 0
(不会写思路,但是这个运行快,嗯快)
```
#includeint show(int *str,int *ch)
{
for(int j=0;j<9;j++)
{
if(str[j]==ch[j])continue;
if(ch[j]==0)continue;
if(str[j]!=ch[j])return 0;
}
return 1;
}
int main()
{
//1880: [蓝桥杯][2017年第八届真题]九宫幻方
/*
6 7 28 3 42 9 46 1 8
1 5 91 5 97 5 37 5 3
8 3 46 7 26 1 82 9 4
2 7 64 3 84 9 28 1 6
9 5 19 5 13 5 7 3 5 7
4 3 82 7 68 1 64 9 2
*/
int str[][9]={
{6,7,2,1,5,9,8,3,4},
{8,3,4,1,5,9,6,7,2},
{2,9,4,7,5,3,6,1,8},
{6,1,8,7,5,3,2,9,4},
{2,7,6,9,5,1,4,3,8},
{4,3,8,9,5,1,2,7,6},
{4,9,2,3,5,7,8,1,6},
{8,1,6,3,5,7,4,9,2},
};
int ch[9];
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
scanf("%d",&ch[i*3+j]);
}
int i,tmp=0;
for(int k=0;k<8;k++)
{
if(show(str[k],ch))
{
tmp+=1;
if(tmp==1)i=k;
}
}
if(tmp==1)
for(int j=0;j<9;j++)
{
if(j!=0 &&j%3==0)
printf("\n");
printf("%d ",str[i][j]);
}
else{
printf("Too Many");
}
return 0;
}
```
0.0分
1 人评分
转载地址:http://txodl.baihongyu.com/