藍橋杯 五星填數


標題:五星填數
如【圖1.png】的五星圖案節點填上數字:1~12,除去7和11。
要求每條直線上數字和相等。
如圖就是恰當的填法。
請你利用計算機搜索所有可能的填法有多少種。
注意:旋轉或鏡像後相同的算同一種填法。

請提交表示方案數目的整數,不要填寫任何其它內容。

#include <iostream>
#include<algorithm>
 
using namespace std;
int main(int argc, char** argv) {
	int a[10]={1,2,3,4,5,6,8,9,10,12};
	int a1,a2,a3,a4,a5;
	int sum=0;
	do{
		a1=a[0]+a[2]+a[5]+a[8];
		a2=a[1]+a[2]+a[3]+a[4];
		a3=a[0]+a[3]+a[6]+a[9];
		a4=a[1]+a[5]+a[7]+a[9];
		a5=a[4]+a[6]+a[7]+a[8];
	//	cout<<a1<<"  "<<a2<<"  "<<a3<<"  "<<a4<<"  "<<a5<<endl;
	if(a1==a2&&a1==a3&&a1==a4&&a1==a5)
	 sum++;
	}while(next_permutation(a,a+10));
	cout<<sum;
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章