A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。
下图就是一种排法(如有对齐问题,参看p1.png)。
A
9 6
4 8
3 7 5 2
这样的排法可能会有很多。
如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?
请你计算并提交该数字。
注意:需要提交的是一个整数,不要提交任何多余内容。
【解析】:穷举,需要注意的是考虑旋转、镜像后相同的算同一种,顶点可以有三个位置,并且左右对称的话也是相同的一种,因此最后要除以6
package 蓝桥杯;
/**
* @author
*2022-4-722:09:05
* @description:
*/
public class 纸牌三角形 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int []arr=new int[9];
for (int i = 0; i < 9; i++) {
arr[i]=i+1;
}
int sum=0;
for (int i = 1; i <=arr.length; i++) {
for (int j = 1; j <=arr.length; j++) {
if (i!=j) {
for (int k = 1; k <= arr.length; k++) {
if (i!=k&&j!=k) {
for (int l = 1; l < arr.length; l++) {
if (i!=l&&j!=l&&k!=l) {
for (int m = 1; m <= arr.length; m++) {
if (i!=m&&j!=m&&k!=m&&l!=m) {
for (int n = 1; n <= arr.length; n++) {
if (i!=n&&j!=n&&k!=n&&l!=n&&m!=n) {
for (int o = 1; o <= arr.length; o++) {
if (i!=o&&j!=o&&k!=o&&l!=o&&m!=o&&n!=o) {
for (int p = 1; p <= arr.length; p++) {
if (i!=p&&j!=p&&k!=p&&l!=p&&m!=p&&n!=p&&o!=p) {
for (int q = 1; q <= arr.length; q++) {
if (i!=q&&j!=q&&k!=q&&l!=q&&m!=q&&n!=q&&o!=q&&p!=q) {
if ((i+j+k+l)==(l+m+n+o)&&(l+m+n+o)==(o+p+q+i)&&(i+j+k+l)==(o+p+q+i)) {
sum++;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
System.out.println(sum/6);//130
}
}
暴力真优雅