题目描述
A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。
下图就是一种排法这样的排法可能会有很多。
如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?
输出
输出一个整数表示答案
1.全排列,然后按顺序填入三角形,再验证是否满足条件
2.最后结果/6,因为同一个串,每个顶点镜面一下就是两种,三个顶点就是一共会重复算6次。
代码
#include <bits/stdc++.h>
using namespace std;
int a[12]={1,2,3,4,5,6,7,8,9};
int main()
{
int ans=0;
do{
int x=a[0]+a[1]+a[2]+a[3];
int y=a[3]+a[4]+a[5]+a[6];
int z=a[6]+a[7]+a[8]+a[0];
int tem=a[0]*100+a[3]*10+a[6];
if(x==y&&y==z)
{
ans++;
}
}while(next_permutation(a,a+9));
cout<<ans/6;
}
answer:144