题目描述
题目:有一个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;
}
运行结果:(洛谷云机)