
目录
- 🍋题目描述
- 🍋整体思路
- 🍋源代码
🍋题目描述
A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。
下图就是一种排法:
这样的排法可能会有很多。
如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?
请你计算并提交该数字。
🍋整体思路
🍋源代码
public class Main
{
static int [] arr= {1,2,3,4,5,6,7,8,9};//全局变量
static int ans;//答案
static void f(int []arr,int k){
if(k==9) {//当k==9,排列完成
//三条边的数目
int x1=arr[0]+arr[1]+arr[5]+arr[7];
int x2=arr[1]+arr[4]+arr[6]+arr[2];
int x3=arr[0]+arr[8]+arr[3]+arr[2];
if(x1==x2&&x2==x3) {
ans++;//ans++
}
}
//全排列的模板
for(int i=k;i<9;i++) {
int t=arr[k];
arr[k]=arr[i];
arr[i]=t;
f(arr,k+1);
t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}
public static void main(String[] args){
f(arr,0);//调用函数
System.out.println(ans/6);//旋转3次,每次旋转2次
}
}```