輸出陣列的全部組合
阿新 • • 發佈:2019-02-08
採用遞迴的思想。
#include<stdlib.h>
#include<iostream>#include<stdio.h>
using namespace std;
void combine(int arr[],int data[],int start,int end,int index,int r)
{
if(index==r)
{
for(int i=0;i<r;i++)
{cout<<data[i];}
cout<<endl;
return;
}
if(start+(r-index)>end)
return;
data[index]=arr[start];
combine(arr,data,start+1,end,index+1,r);
combine(arr,data,start+1,end,index,r);
}
int main() {
int arr[] = {1,2,3,4,5};
int r = 2;
int * data = new int[r];
int n=sizeof(arr)/sizeof(arr[0]);
combine(arr,data,0,n,0,1);
combine(arr,data,0,n,0,2);
combine(arr,data,0,n,0,3);
combine(arr,data,0,n,0,4);
combine(arr,data,0,n,0,5);
return 0;
}