蓝桥杯 幻方填空

幻方填空

幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等。

欧洲最著名的幻方是德国数学家、画家迪勒创作的版画《忧郁》中给出的一个4阶幻方。

他把1,2,3,…16 这16个数字填写在4 x 4的方格中。

如图所示,即:

在这里插入图片描述

表中有些数字已经显露出来,还有些用?和*代替。

请你计算出? 和 * 所代表的数字。并把 * 所代表的数字作为本题答案提交。

答案:12

#include<bits/stdc++.h>
using namespace std;
int a[15]={2,3,4,5,6,7,8,10,12,14};
int main()
{
	do
	{
		int x=16+a[0]+a[1]+13;
		if(a[2]+a[3]+11+a[4]==x && 9+a[5]+a[6]+a[7]==x && a[8]+15+a[9]+1==x && 16+a[2]+9+a[8]==x && a[0]+a[3]+a[5]+15==x && a[1]+11+a[6]+a[9]==x && 13 +a[4]+a[7]+1==x && 16+a[3]+a[6]+1==x && 13+11+a[5]+a[8]==x)
		{
			cout<<a[7]<<endl;
		}
	}while(next_permutation(a,a+10));
	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/weixin_43693379/article/details/88625270