qq小程序在哪里打开/厦门seo测试
纸牌三角形
题目描述
A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。
下图就是一种排法这样的排法可能会有很多。
如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?
输出
输出一个整数表示答案
#include <iostream>
using namespace std;
int num[10];
bool vis[10];
int sum;
int sum1,sum2,sum3;
void dfs(int index){if(index == 5){sum1=num[1]+num[2]+num[3]+num[4];}if(index==8){sum2=num[4]+num[5]+num[6]+num[7];}if(index==10){sum3=num[7]+num[8]+num[9]+num[1];if(sum1 == sum2 && sum3 == sum1){sum++;return;}}for(int i=1;i<10;i++){if(!vis[i]){vis[i]=true;num[index]=i;dfs(index+1);vis[i]=false;}}
}
int main() {for(int i=0;i<10;i++){vis[i]=false;}dfs(1);cout<<sum/6;return 0;
}
答案是144,在OJ上提交通过。