首页 > 其他 > 详细

六角填数

时间:2015-03-25 21:36:29      阅读:528      评论:0      收藏:0      [点我收藏+]

标题:六角填数 

如图【1.png】

所示六角形中,填入1~12的数字。 使得每条直线上的数字之和都相同。 

图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?

请通过浏览器提交答案,不要填写多余的内容。简单的枚举排列,只要提前将12个结点标号,来判断六个线段总和是否相等。

#   include <iostream>
#   include <algorithm>
#   include <cstring>
using namespace std;

int a[12]={1,8,2,4,5,6,7,9,10,11,12,3};
int t[6];
void display(){
	int i;
	for(i=0;i<12;i++){
		cout<<a[i]<<" ";
	}
	cout<<endl;
}
bool judge(){
	int i;
	t[0]=a[0]+a[2]+a[5]+a[7];
	t[1]=a[7]+a[8]+a[9]+a[10];
	t[2]=a[0]+a[3]+a[6]+a[10];
	t[3]=a[1]+a[2]+a[3]+a[4];
	t[4]=a[1]+a[5]+a[8]+a[11];
	t[5]=a[5]+a[6]+a[9]+a[11];
	for(i=0;i<4;i++){
		if(t[i]!=t[i+1])return false;
	}
	return true;
}
int main(){
	while(next_permutation(a+2,a+11)){
		if(judge()){
			display();
			cout<<a[5]<<endl;
		}
	}
	return 0;
}

这道题目的话因为是简答题做起来非常快,全排列 完全不用多考虑

技术分享

六角填数

原文:http://blog.csdn.net/haoge9551/article/details/44627043

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!