题目是這样的:
如图【1.png】所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
解法:
将12个数字放置到12个位置中,深度搜索,暴力枚举的方法每放置一个数字,检查之前所放置位置的数字是否出现重复当恰好放置12个数字并且六个边的和相同打印出所有的数字。
#include<stdio.h>
#include<string.h>
int t[6];
int num[12];
void dfs(int cur)
{
t[0] = num[1] + num[4] + num[7] + num[9];
t[1] = num[2] + num[5] + num[4] + num[6];
t[2] = num[1] + num[5] + num[8] + num[12];
t[3] = num[6] + num[8] + num[11] + num[3];
t[4] = num[9] + num[10] + num[11] + num[12];
t[5] = num[2] + num[7] + num[10] + num[3];
//恰好放置12个数字,+1为13
if