第八届蓝桥杯java b组第二题

标题:纸牌三角形

        A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每一个边的和相等。
        下图就是一种排法(若有对齐问题,参看p1.png)。

              A
             9 6
            4   8
           3 7 5 2

        这样的排法可能会有不少。

        若是考虑旋转、镜像后相同的算同一种,一共有多少种不一样的排法呢?

        请你计算并提交该数字。

        注意:须要提交的是一个整数,不要提交任何多余内容。

这题没什么好说的 暴力破解模型 将不一样位置的数认为一个排列 而后中间的位置认为相等 而后三处有想好可换java

那么最后须要除2和除3ide

import java.util.Stack; public class Test2 { private static int count=0; public static void main(String[] args) { Stack<Integer> stack=new Stack<Integer>(); for(int i=1;i<=9;i++){ stack.push(i); fun(stack); stack.pop(); } System.out.println(count/2/3); } private static void fun(Stack<Integer> stack) { if(stack.size()==9){ int A=stack.get(0); int B=stack.get(1); int C=stack.get(2); int D=stack.get(3); int E=stack.get(4); int F=stack.get(5); int G=stack.get(6); int H=stack.get(7); int I=stack.get(8); int ACEI=A+C+E+I; int ABDF=A+B+D+F; int FGHI=F+G+H+I; if(ACEI==ABDF&&ABDF==FGHI){ ++count; System.out.printf("%d %d %d %d   %d %d %d %d   %d %d %d %d",A,B,D,F,A,C,E,I,F,G,H,I); System.out.println(); } } for(int j=1;j<=9;j++){ if(!stack.contains(j)){ stack.push(j); fun(stack); stack.pop(); } } } }
View Code
相关文章
相关标签/搜索