标题:六角填数
如图所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
请通过浏览器提交答案,不要填写多余的内容。
c++代码
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f,g,h,n;
int flag=0;
int line[6];
for(a=1;a<=12&&flag==0;a++) {
for (b = 1; b <= 12 && flag == 0; b++) {
if (a != b) {
for (c = 1; c <= 12 && flag == 0; c++)
if (a != c && b != c) {
for (d = 1; d <= 12 && flag == 0; d++)
if (a != d && b != d && c != d) {
for (e = 1; e <= 12 && flag == 0; e++)
if (a != e && b != e && c != e && d != e) {
for (f = 1; f <= 12 && flag == 0; f++)
if (a != f && b != f && c != f && d != f && e != f) {
for (g = 1; g <= 12 && flag == 0; g++)
if (a != g && b != g && c != g && d != g && e != g && f != g)
for (h = 1; h <= 12 && flag == 0; h++) {
if (a != h && b != h && c != h && d != h && e != h &&
f != h && g != h) {
for (n = 1; n <= 12 && flag == 0; n++)
if (a != n && b != n && c != n && d != n &&
e != n && f != n && g != n && h != n) {
line[0] = 8 + a + b + c;
line[1] = 1 + a + n + e;
line[2] = e + f + g + h;
line[3] = 8 + n + 3 + f;
line[4] = 1 + b + d + h;
line[5] = 3 + c + d + g;
for(int i=1;i<6;i++){
if(line[0]==line[i])
continue;
flag=1;
break;
}
}
}
}
}
}
}
}
}
}
}
cout<<n;
return 0;
}