zoukankan      html  css  js  c++  java
  • java实现第六届蓝桥杯五星填数

    五星填数

    如【图1.png】的五星图案节点填上数字:1~12,除去7和11。
    要求每条直线上数字和相等。

    如图就是恰当的填法。

    请你利用计算机搜索所有可能的填法有多少种。
    注意:旋转或镜像后相同的算同一种填法。

    请提交表示方案数目的整数,不要填写任何其它内容。

    答案:12

    在这里插入图片描述

    public class Main {
        public static int count = 0;
        
        public void swap(int[] A, int i, int j) {
            int temp = A[i];
            A[i] = A[j];
            A[j] = temp;
        }
        
        public void check(int[] A) {
            int sum1 = A[0] + A[2] + A[5] + A[8];
            int sum2 = A[0] + A[3] + A[6] + A[9];
            int sum3 = A[1] + A[2] + A[3] + A[4];
            int sum4 = A[1] + A[5] + A[7] + A[9];
            int sum5 = A[4] + A[6] + A[7] + A[8];
            if(sum1 == sum2 && sum1 == sum3 && sum1 == sum4 && sum1 == sum5) {
                count++;
            } else
                return;
        }
        
        public void dfs(int[] A, int step) {
            if(step == A.length) {
                check(A);
                return;
            } else {
                for(int i = step;i < A.length;i++) {
                    swap(A, i, step);
                    dfs(A, step + 1);
                    swap(A, i, step);
                }
            }
        }
        
        public static void main(String[] args) {
            Main test = new Main();
            int[] A = {1,2,3,4,5,6,8,9,10,12};
            test.dfs(A, 0);
            System.out.println(count / 10);
        }
    }
    
  • 相关阅读:
    PHP框架 CI与TP之MVC比较
    多线程设计要点
    BigPipe 的工作原理
    Linux yum命令的使用技巧
    java 乱码问题
    win7或xp下常用命令
    不同场景下JVM参数的设置
    win7笔记本创建wifi热点
    maven编译出现Java heap space
    Curling 2.0——蛋疼的一道题
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947441.html
Copyright © 2011-2022 走看看