
目錄
- 🍋題目描述
- 🍋整體思路
- 🍋源代碼
🍋題目描述
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次
}
}```