标题:六角填数
如图【1.png】所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
请通过浏览器提交答案,不要填写多余的内容。
import java.util.Scanner;
public class Main {
static int[] a=new int[13];
static int[] visit=new int[13];
public static boolean check(int[] a) {
int num1=0;
int num2=0;
int num3=0;
int num4=0;
int num5=0;
int num6=0;
num1=a[1]+a[3]+a[6]+a[8];
num2=a[1]+a[4]+a[7]+a[11];
num3=a[2]+a[3]+a[4]+a[5];
num4=a[8]+a[9]+a[10]+a[11];
num5=a[2]+a[6]+a[9]+a[12];
num6=a[5]+a[7]+a[10]+a[12];
if(num1==num2&&num1==num3&&num1==num4&&num1==num5&&num1==num6) {
if(a[2]==8&&a[1]==1&&a[12]==3) {
return true;
}
}
return false;
}
public static void dfs(int num) {
if(num==12) {
if(check(a)) {
System.out.println(a[6]);
}
}
else {
for(int i=1;i<=12;i++) {
if(visit[i]==0) {
visit[i]=1;
a[num+1]=i;
dfs(num+1);
visit[i]=0;
}
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//Scanner sc=new Scanner(System.in);
dfs(0);
}
}