Magic Square
题目描述
幻方是一种很古老的数学游戏,其中三阶幻方是在一个九宫格中填入数字1∼9,使得三行三列以及两个对角线的数字和相等。 现在给你一个填好数字的九宫格,请问是不是满足三阶幻方的条件。
输入
第一行是一个整数T(1≤T≤1000),表示样例的个数。 以后每行一个样例,每行为9个整数,为1∼9,且每个整数只出现一次,表示按行优先顺序依次填入九宫格。
输出
每行输出一个样例的结果,如果满足三阶幻方的条件,输出“Yes”,否则输出“No”。
样例输入
2 123456789 276951438
样例输出
No Yes
#include<stdio.h>
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
char c[10];
scanf("%s",c);
int a[10]= {0};
for(int i=0;i<9;i++){
a[i] = c[i]-'0';
}
int b;
if((b=a[0]+a[1]+a[2])&&(a[0]+a[3]+a[6]==b)&&(a[3]+a[4]+a[5]==b)&&(a[6]+a[7]+a[8]==b)&&(a[1]+a[4]+a[7]==b)&&(a[2]+a[5]+a[8]==b)&&(a[0]+a[4]+a[8]==b)&&(a[2]+a[4]+a[6]==b))
{
printf("Yes\n");
}
else{
printf("No\n");
}
}
return 0;
}