下图所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
思路:
a[0],a[1],a[11]是已经规定好的1,8,3;将12个数全排列,符合条件的输出
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},x;
do
{
if (a[0]==1&&a[1]==8&&a[11]==3)
{
x=a[0]+a[2]+a[5]+a[7];
if (x==a[0]+a[3]+a[6]+a[10] && x==a[7]+a[8]+a[9]+a[10]
&& x==a[1]+a[2]+a[3]+a[4] && x==a[1]+a[5]+a[8]+a[11] && x==a[4]+a[6]+a[9]+a[11])
{
cout<<a[5];
break;
}
}
}while (next_permutation(a,a+12));
return 0;
}