题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等。
欧洲最著名的幻方是德国数学家、画家迪勒创作的版画《忧郁》中给出的一个?4?阶幻方。
他把 1,2,3,...16?这?1616?个数字填写在 4×4?的方格中。
如下图所示,即:
表中有些数字已经显露出来,还有些用???和???代替。
请你计算出???和???所代表的数字。并把 * 所代表的数字作为本题答案提交。
运行限制
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int main()
{
int f[] = {2, 3, 4, 5, 6, 7, 8, 10, 12, 14};
do{
int h1 = 16 + f[0] + f[1] + 13;
int h2 = f[2] + f[3] + 11 + f[4];
int h3 = 9 + f[5] + f[6] + f[7];
int h4 = f[8] + 15 + f[9] + 1;
int l1 = 16 + f[2] + 9 + f[8];
int l2 = f[0] + f[3] + f[5] + 15;
int l3 = f[1] + 11 + f[6] + f[9];
int l4 = 13 + f[4] + f[7] + 1;
int x1 = 16 + f[3] + f[6] + 1;
int x2 = 13 + 11 + f[5] + f[8];
if(h1 == h2 && h2 == h3 && h3 == h4 && h4 == l1 && l1 == l2 && l2 == l3 && l3 == l4 && l4 == x1 && x1 == x2) {
cout << f[7] << endl;
}
} while(next_permutation(f, f + 10));
return 0;
}
?
?
|