很简单的题,让你在一个集合中,选六个数,要升序,把他们打印出来,这个题唯一要注意的是输出的格式
代码如下:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a[55],vis[55];
int b[55];
int n;
void dfs(int num)
{
if(num==6)
{
cout<<b[0];
for(int i=1;i<num;i++)
cout<<' '<<b[i];
cout<<endl;
return;
}
for(int i=1;i<=n;i++)
{
if(!vis[i]&&a[i]>b[num-1])
{
vis[i]=1;
b[num]=a[i];
dfs(num+1);
vis[i]=0;
}
}
}
int main()
{
//freopen("in.txt","r",stdin);
int first=0;
cin>>n;
do
{
if(!n)
break;
if(first)
{
printf("\n");
}
for(int i=1;i<=n;i++)
cin>>a[i];
memset(vis,0,sizeof(vis));
memset(b,0,sizeof(b));
//b[0]=0;
dfs(0);
first=1;
//cout<<endl;
}while(cin>>n);
return 0;
}