Phan Gia Khang | Chat Online
15/05/2023 21:02:11

Liệt kê mọi cách chọn n phân tử trong tập m phần tử


/*
Đề: Liệt kê mọi cách chọn n phân tử trong tập m phần tử
    + Đơn giản hóa: đặt M = {1,2,...,m}
    + Cấu hình tập hợp A = (a[1],a[2],...a[n])
    + Đơn giản hóa: a[1] < a[2] < ... < a[n]
    + S[k] = {a[k-1]+1,... m}
*/
#include <bits/stdc++.h>
using namespace std;
int a[100],n,m;

void print()
{
    for (int i = 1; i <= n ; i++) cout << " " << a[i];
    cout << endl;
}

void create(int k)
{
    if (k > n) { print(); return; }
    for (int i = a[k-1] + 1 ; i <= m-n+k ; i++)
        a[k] = i; create(k+1);
}
int main()
{
    cin >> n >> m;
    a[0] = 0;
    create(1);
    return 0;
}
mình chạy với test 3 5 nhưng chỉ ra kết quả là 3 4 5
 
Bài tập đã có 1 trả lời, xem 1 trả lời ... | Chính sách thưởng | Quy chế giải bài tập
Không chấp nhận lời giải copy từ Trợ lý ảo / ChatGPT. Phát hiện 1 câu cũng sẽ bị xóa tài khoản và không được thưởng
Đăng ký tài khoản để nhận Giải thưởng khi trả lời bài tập.
Đăng ký tài khoản để có thể trả lời bài tập này!

Đăng ký qua Facebook hoặc Google:

Hoặc lựa chọn:
Đăng ký bằng email, điện thoại Đăng nhập bằng email, điện thoại
Lazi.vn