/*
第七题
标题:六角填数
如图【1.png】所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
请通过浏览器提交答案,不要填写多余的内容。
*/
分析:
可将1~12中除去1,3,8,三个数后进行全排列模拟一下,给每个圆圈编号,模拟出满足题目要求的情况时,*位置的数值大小。
代码:
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int num[15] = {1,2,3,4,5,6,7,8,9,10,11,12};
do
{
if( num[0] == 1 && num[1] == 8 && num[11] == 3 )
{
if( num[0]+num[2]+num[5]+num[7] == num[0]+num[3]+num[6]+num[10] && num[0]+num[3]+num[6]+num[10] == num[10]+num[9]+num[8]+num[7] )
{
if( num[1]+num[2]+num[3]+num[4] == num[4]+num[6]+num[9]+num[11] && num[4]+num[6]+num[9]+num[11] == num[11]+num[8]+num[5]+num[1] )
{
if( num[0]+num[2]+num[5]+num[7] == num[1]+num[2]+num[3]+num[4] )
{
printf("%d\n",num[5]);
break;
}
}
}
}
}while( next_permutation(num,num+12) );
return 0;
}