从一些数中随机挑取几个数

本次测试写的三个。

一:

#include<iostream>
using namespace std;
int a[10],b[10],t;
void asd(int x,int y,int z)
{
    int i;
    if(x==0)
    {
           for(i=0;i<z;i++)
              cout<<b[i]<<" ";
          
         cout<<endl;
    }
    
    for(i=y;i<t;i++)
    {
        b[z]=a[i];
        asd(x-1,i+1,z+1);       
    }
}

int main()
{
    int i;
    cin>>t;
    for(i=0;i<t;i++)
      cin>>a[i];
    asd(3,0,0);     
    return 0;
}

二:

#include<iostream>
using namespace std;
int a[10],b[10],t;

void asd(int x,int y)
{
    int j;
    if(x==0)
    {
           for(int i=0;i<y;i++)
               cout<<b[i]<<" ";
        cout<<endl;
    }
    
    for(int i=0;i<t;i++)
    {
        for(j=0;j<y;j++)
            if(a[i]==b[j])
               break;        
    
        if(j==y)
        {
            b[y]=a[i];
            asd(x-1,y+1); 
        }        
    }
}

int main()
{
    cin>>t;
    for(int i=0;i<t;i++)
        cin>>a[i];
    asd(3,0);     
    return 0;
}

三:

#include<iostream>
using namespace std;
int a[10],b[10],t;

void asd(int x,int j)
{
    if(x==0)
    {
           for(int i=0;i<j;i++)
               cout<<b[i]<<" ";
        cout<<endl;
        return ; 
    }
    
    for(int i=0;i<t;i++)
    {
        b[j]=a[i];
        asd(x-1,j+1);  
    }
}

int main()
{
    cin>>t;
    for(int i=0;i<t;i++)
        cin>>a[i];
    asd(3,0);     
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/tianzeng/p/9151586.html
今日推荐