hdoj1342

来源:互联网 发布:directx编程 编辑:程序博客网 时间:2024/06/16 13:39

很简单的题,让你在一个集合中,选六个数,要升序,把他们打印出来,这个题唯一要注意的是输出的格式

代码如下:

#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;}


 

原创粉丝点击