题目描述
思路
枚举,把每一种情况罗列出来并输出。
定义六个循环变量,i1,i2,i3,i4,i5,i6。a[i1]-a[i6]为从k个数中取出的六个数,它们之间的关系为i1<i2<i3<i4<i5<i6。因此a[i1]只能为前k-5个数中的一个, a[i2]只能为前k-4个数中的一个……最后依次输出a[i1]-a[i6]。
#include<bits/stdc++.h>
using namespace std;
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif
int n,a[55];
while(scanf("%d",&n)!=-1)
{
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i1=1;i1<=n-5;i1++)
for(int i2=i1+1;i2<=n-4;i2++)
for(int i3=i2+1;i3<=n-3;i3++)
for(int i4=i3+1;i4<=n-2;i4++)
for(int i5=i4+1;i5<=n-1;i5++)
for(int i6=i5+1;i6<=n;i6++)
printf("%d %d %d %d %d %d\n",a[i1],a[i2],a[i3],a[i4],a[i5],a[i6]);
}
return 0;
}