题解 AT2203 【魔方陣2 / Magic Square 2】
ShineEternal
2018-07-06 16:24:46
楼下大佬使我十分佩服,但蒟蒻认为如果能写的简单,为什么要那么复杂呢?
```
#include<cstdio>
using namespace std;
int f[4][4];
int main()
{
int a,b,c;
scanf("%d%d%d",&f[1][1],&f[1][2],&f[2][2]);//先把位置都放好
a=f[2][2]*3;//a记录行,列,斜线的和。我们知道,这种3*3的方格填数每一行,每一列,每一斜线的和都等于中间数的3倍
f[1][3]=a-f[1][1]-f[1][2];
f[3][1]=a-f[1][3]-f[2][2];
f[3][3]=a-f[1][1]-f[2][2];
f[2][1]=a-f[1][1]-f[3][1];
f[2][3]=a-f[2][1]-f[2][2];
f[3][2]=a-f[1][2]-f[2][2];//这一大段是计算,顺序很重要
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
printf("%d ",f[i][j]);//矩阵输出
}
printf("\n");
}
return 0;
}
```
**总结:本人利用了此题只为3*3的矩阵,有点投机取巧,但就这道题而言,还是一个通俗易懂的思路**
求过