#1287. 开场白
开场白
【试题描述】
给你一个n行n列的由1到nn构成的数字方阵,其中1到nn每个数恰好出现一次,并且已知这个数字方阵的每一行每一列的数之和都等于定值n*(nn+1)/2。现在要你验证它的两条对角线上的数之和是否都等于定值n(n*n+1)/2。如果满足这一条件则这个数字方阵就是传说中的幻方了。
【输入要求】
第一行读入一个正整数n,n<10。从第2行到第n+1行每行读入n个正整数,相邻两数间用空格隔开。输入数据保证1到nn每个数恰好出现一次,并且这个数字方阵的每一行每一列的数之和都等于定值n(n*n+1)/2。
【输出要求】
如果输入的方阵的两条对角线上的n个数之和都等于定值n*(n*n+1)/2则输出"Yes",否则输出"No"。输出时请注意大小写,双引号不要输出。
【输入样例1】
3
6 1 8
7 5 3
2 9 4
【输出样例1】
Yes
【输入样例2】
4
1 15 14 4
12 6 7 9
13 3 2 16
8 10 11 5
【输出样例2】
No
【知识点及提示】
主对角线上所有位置的元素所在的行和列是相等的,反对角线上所有位置的元素所在的行和列相加等于n+1。
样例解释:样例1中主对角线上3个数分别是6,5,4,它们的和等于15=3*(3*3+1)/2,反对角线上3个数分别是8,5,2,它们的和也等于15,因此输入的方阵是一个传说中的幻方。
样例2中主对角线上4个数分别是1,6,2,5,它们的和是14不等于4*(4*4+1)/2,因此输入的方阵不是幻方。
相关
在以下作业中: