天天看點

藍橋杯 JAVA紙牌三角形JAVA紙牌三角形

JAVA紙牌三角形

A,2,3,4,5,6,7,8,9 共9張紙牌排成一個正三角形(A按1計算)。要求每個邊的和相等。

下圖就是一種排法(如有對齊問題,參看p1.png)。

A
 9 6
4   8
           

3 7 5 2

這樣的排法可能會有很多。

如果考慮旋轉、鏡像後相同的算同一種,一共有多少種不同的排法呢?

請你計算并送出該數字。

注意:需要送出的是一個整數,不要送出任何多餘内容。

public class Main {
	public static void main(String[] args) {
		int cnt=0;
		for(int a=1;a<=9;a++){
			for(int b=1;b<=9;b++){
				for(int c=1;c<=9;c++){
					for(int d=1;d<=9;d++){
						for(int e=1;e<=9;e++){
							for(int f=1;f<=9;f++){
								for(int g=1;g<=9;g++){
									for(int h=1;h<=9;h++){
										for(int i=1;i<=9;i++){
											if(a!=b && a!=c && a!=d && a!=e && a!=f && a!=g && a!=h && a!=i &&
													b!=c && b!=d && b!=e && b!=f && b!=g && b!=h && b!=i &&
													c!=d && c!=e && c!=f && c!=g && c!=h && c!=i &&
													d!=e && d!=f && d!=g && d!=h && d!=i &&
													e!=f && e!=g && e!=h && e!=i &&
													f!=g && f!=h && f!=i &&
													g!=h && g!=i && 
													h!=i){
												if((a+b+d+f)==(a+c+e+i) && (a+b+d+f)==(f+g+h+i) && (a+c+e+i)==(f+g+h+i)){
													cnt++;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
		System.out.println(cnt/3/2);	//旋轉3種,鏡像2種
	}
}
           

答案為144

謝謝大家的支援,您的一鍵三連是 罡罡同學前進的最大動力!

一鍵三連 一鍵三連 一鍵三連 一鍵三連 一鍵三連 一鍵三連