题目描述
A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。
下图就是一种排法这样的排法可能会有很多。
如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?
输出
输出一个整数表示答案
代码如下:
#include <iostream>
#include <algorithm>
using namespace std;int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};bool check() {int r1 = a[0] + a[1] + a[2] + a[3];int r2 = a[6] + a[5] + a[4] + a[3];int r3 = a[0] + a[8] + a[7] + a[6];if (r1 == r2 && r1 == r3 && r2 == r3)return true;elsereturn false;
}int main() {int ans = 0;do {if (check()) {ans++;}} while (next_permutation(a, a + 9));cout << ans / 3 / 2 << endl;//这里是ans/3/2,除以3是排除了旋转,//除以2是排除了镜像.//一定要仔细阅读题意,去除旋转和镜像问题return 0;
}