题目描述
题目:有一个n×n
的方阵,如果它一行的数字之和等于一列之和,并等于每条对角线的和,这个方阵就叫做"魔方阵"。如果满足以上要求,输出Yes
,否则输出No
(有点像幻方的感觉)
输入输出样例:
输入一个数n
,表示这是n×n
的方阵
接下来n
行,每行输入n
个数,代表方阵
输入#1:
3
8 1 6
3 5 7
4 9 2
输出#1:
Yes
代码实现
直接上代码。。。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,sum=0,sum1=0,sum2=0,sum3=0,sum4=0;
cin>>n;
int cube[n][n];
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
cin>>cube[i][j];
}
sum+=cube[i][0];
}
for(int i=0;i<n;i++) {
sum1=0,sum2=0;
sum3=sum3+cube[i][i];
sum4=sum4+cube[i][n-i-1];
for(int j=0;j<n;j++) {
sum1=sum1+cube[i][j];
sum2=sum2+cube[j][i];
}
if(sum==sum1 && sum1==sum2) {
sum=sum1;
}
else {
cout<<"No";
return 0;
}
}
if(sum==sum2 && sum3==sum4) {
cout<<"Yes";
}
else cout<<"No";
return 0;
}
运行结果:(洛谷云机)