标题:六角填数

如图【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);
    }
}


 

相关文章: