CTDL và giải thuật - In ra tất cả những tổ hợp chập k của n
Nhập vào hay số nguyên n
và k
(1 ≤ k ≤ n ≤ 9
)
In ra tất cả những tổ hợp chập k
của n, các chuỗi sắp xếp theo thứ tự tăng dần, sau một chuỗi có đúng một khoảng trắng.
Ví dụ:
- Test mẫu 1:
Input Output 3 2 12 13 23
Vớin = 3, k = 2
thì kết quả mong muốn là:"12 13 23"
.
- Test mẫu 2:
Input Output 5 3 123 124 125 234 235 345
Vớin = 5, k = 3
thì kết quả mong muốn là:"123 124 125 234 235 345"
.
Hướng dẫn bài tập.
Code mẫu:
#include<iostream>
using namespace std;
int x[11];
void printArray(int a[], int n){
for (int i = 1; i <= n; i++){
cout << a[i];
}
cout <<" ";
}
void dequy(int h, int k, int n){
for (int i = x[h-1] + 1; i <= n - (k-h); i++){
x[h] = i;
if (h == k) printArray(x, k);
else {
dequy(h+1, k, n);
}
}
}
int main(){
int n, k;
cin >> n >> k;
x[0] = 0;
dequy(1, k, n);
}