第五届蓝桥杯 c/c++ B组7
如图【1.png】所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
请通过浏览器提交答案,不要填写多余的内容。
#include<iostream>
using namespace std;
int arr[15], brr[15], s=0;
void dfs(int i){
if (i==13){
if (arr[1]==1&&arr[2]==8&&arr[12]==3){
if (arr[1]+arr[3]+arr[6]+arr[8]==arr[2]+arr[3]+arr[4]+arr[5]&&
arr[1]+arr[3]+arr[6]+arr[8]==arr[1]+arr[4]+arr[7]+arr[11]&&
arr[1]+arr[3]+arr[6]+arr[8]==arr[2]+arr[6]+arr[9]+arr[12]&&
arr[1]+arr[3]+arr[6]+arr[8]==arr[5]+arr[7]+arr[10]+arr[12]&&
arr[1]+arr[3]+arr[6]+arr[8]==arr[8]+arr[9]+arr[10]+arr[11]){
cout<<arr[6];
}
}
return ;
}
else{
for (int j=1; j<=12; j++){
if (!brr[j]){
arr[i]=j;
brr[j]=1;
dfs(i+1);
brr[j]=0;
}
}
}
}
int main() {
dfs(1);
//cout<<s;
}

浙公网安备 33010602011771号