|
|
|
|
#include<iostream>
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
//<2F>Ӻ<EFBFBD><D3BA><EFBFBD>ǰѡȡ<D1A1><C8A1>ѡ<EFBFBD><D1A1>λ<EFBFBD><CEBB>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰi-1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡȡm-1<><31><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><> 1 2 3 4 5 <20><>ѡȡ 3 <20><>
|
|
|
|
|
//1<><31>ѡȡ5<C8A1><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ4<C7B0><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡȡ2<C8A1><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ4<C7B0><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡȡ2<C8A1><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD>ݹ鼴<DDB9>ɡ<EFBFBD>
|
|
|
|
|
//2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35>ֱ<EFBFBD><D6B1>ѡ<EFBFBD><D1A1>4<EFBFBD><34><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>ǰ3<C7B0><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡȡ2<C8A1><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡȡ2<C8A1><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD>ݹ鼴<DDB9>ɡ<EFBFBD>
|
|
|
|
|
//3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34>ֱ<EFBFBD><D6B1>ѡȡ3<C8A1><33><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>ǰ2<C7B0><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡȡ2<C8A1><32><EFBFBD><EFBFBD><EFBFBD>պ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31>2<EFBFBD><32>3<EFBFBD>պ<EFBFBD><D5BA><EFBFBD>һ<EFBFBD><D2BB>forѭ<72><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ5<CEAA><35><EFBFBD><EFBFBD>ֵΪm
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><F2BFB4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊһ<CEAA><D2BB>ǰi-1<><31><EFBFBD><EFBFBD>ѡm-1<>ĵݹ顣
|
|
|
|
|
//<2F><>̬<EFBFBD>滮˼<E6BBAE><CBBC>
|
|
|
|
|
|
|
|
|
|
void Combination(int arr[], int nLen, int m, int out[], int outLen) {
|
|
|
|
|
if(m == 0) {
|
|
|
|
|
for (int j = 0; j < outLen; j++) {
|
|
|
|
|
cout << out[j] << "\t";
|
|
|
|
|
}
|
|
|
|
|
cout << endl;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
for (int i = nLen; i >= m; --i) { //<2F>Ӻ<EFBFBD><D3BA><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB>
|
|
|
|
|
out[m-1] = arr[i-1]; //ѡ<><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
Combination(arr,i-1,m-1,out,outLen); // <20><>ǰi-1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡȡm-1<><31><EFBFBD><EFBFBD><EFBFBD>еݹ<D0B5>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintCombination(int arr[], int nLen, int m) {
|
|
|
|
|
if(m > nLen)
|
|
|
|
|
return;
|
|
|
|
|
int* out = new int[m];
|
|
|
|
|
Combination(arr,nLen,m,out,m);
|
|
|
|
|
delete [] out;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
int arr[5]= {1,2,3,4,5};
|
|
|
|
|
int nLen=5;
|
|
|
|
|
int m=3;
|
|
|
|
|
PrintCombination(arr,nLen,m);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|