欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯java第六届决赛第二题--五星填数

发布时间:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 蓝桥杯java第六届决赛第二题--五星填数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
标题:五星填数如【图1.png】的五星图案节点填上数字:1~12,除去7和11。要求每条直线上数字和相等。如图就是恰当的填法。请你利用计算机搜索所有可能的填法有多少种。注意:旋转或镜像后相同的算同一种填法。请提交表示方案数目的整数,不要填写任何其它内容。

package com.sihai.liujie;/*** 全排列* @author sihai**/ public class _2 {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++;} elsereturn;}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) {_2 test = new _2();int[] A = {1,2,3,4,5,6,8,9,10,12};test.dfs(A, 0);System.out.println(count / 10);} }

总结

以上是生活随笔为你收集整理的蓝桥杯java第六届决赛第二题--五星填数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。