C++12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二

C++12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?

分类:C++/C

#include <iostream>#define DefaultSize 9//问题描述://12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?using namespace std;class Grial{public:Grial(int sz=DefaultSize){visted = new bool [sz];data = new int [sz];size = sz;for(int i=1;i<=sz;i++){visted[i]=0;}}bool check(int a[]){if((a[1]<a[2]&&a[2]<a[3]&&a[3]<a[4]&&a[4]<a[5]&&a[5]<a[6]&&a[1]>a[7]&&a[2]>a[8]&&a[3]>a[9]&&a[4]>a[10]&&a[5]>a[11]&&a[6]>a[12]&&a[7]<a[8]&&a[8]<a[9]&&a[9]<a[10]&&a[10]<a[11]&&a[11]<a[12]))return true;return false;}void Insert(int start){if(start==size+1){int k = 0;if(check(data)){for(int i=1;i<=size;i++){cout<<data[i]<<" ";k++;if(k%6==0)cout<<endl;}cout<<"\033[35m————————————————-\033[0m"<<endl;}return ;}else{for(int i=1;i<=size;i++){if(visted[i]==0){data[start]=i;visted[i]=1;Insert(start+1);visted[i]=0;}}}}private:int size;bool *visted;int *data;};int main(){Grial g(12);g.Insert(1);return 0;}

上一篇C++数组中有一个数字出现的次数超过了数组长度的一半,,找出这个数字。

顶0踩0

哪里会顾得上这些。等到时间将矛盾一层层降解为流言是非误解过结

C++12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二

相关文章:

你感兴趣的文章:

标签云: