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ới n = 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ới n = 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);
}