點選檢視:藍橋杯曆年真題 題解目錄
紙牌三角形:
藍橋杯第八屆真題:紙牌三角形 題目分析+代碼
對1~9的數字進行全排列,然後
if(a[0]+a[1]+a[3]+a[5] = a[0]+a[2]+a[4]+a[8]
&& a[0]+a[2]+a[4]+a[8]= a[5]+a[6]+a[7]+a[8])
count++;
因為旋轉、鏡像後相同的視為同一種,answer = count/6;
public class Main002{
static int [] a = new int[] {1,2,3,4,5,6,7,8,9};
static int count = 0;
public static void f(int k) {
if(k==9) {
// 判斷三邊之和是否相等,若相等 count++;
int x1 = a[0]+a[1]+a[3]+a[5];
int x2 = a[0]+a[2]+a[4]+a[8];
int x3 = a[5]+a[6]+a[7]+a[8];
if(x1==x2 && x2 ==x3) count++;
}
/* 對 1~9 進行全排列,
* 把第 k 位以後的每一位交換到第一位
遞歸+回溯 */
for(int i=k;i<9;i++) {
int t = a[k];
a[k] = a[i];
a[i] = t;
f(k+1);
t= a[k];
a[k] = a[i];
a[i] = t;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
f(0);
System.out.println(count/6);
}
}
藍橋杯第八屆真題:紙牌三角形