Câu hỏi:

03/07/2023 78

Em hãy lập trình, nhập vào một từ gồm các chữ cái khác nhau, liệt kê ra tất cả các hoán vị của các chữ cái đó. Chạy thử nghiệm với các bộ dữ liệu ở Bảng 1.

Siêu phẩm 30 đề thi thử THPT quốc gia 2024 do thầy cô VietJack biên soạn, chỉ từ 100k trên Shopee Mall.

Mua ngay

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

#define MAX 20

using namespace std;

int n;

int Bool[MAX] = { 0 };//Đánh dấu chưa có phần tử nào sử dụng hết

int A[MAX];//Lưu hoán vị vào mảng A

void xuat() {

 for (int i = 1; i <= n; i++)

 cout << A[i] << " ";

 cout << endl;

}

void Try(int k) {

 for (int i = 1; i <= n; i++) {

 //Kiểm tra nếu phần tử chưa được chọn thì sẽ đánh dấu

 if (!Bool[i]) {

 A[k] = i; // Lưu một phần tử vào hoán vị

 Bool[i] = 1;//Đánh dấu đã dùng

 if (k == n)//Kiểm tra nếu đã chứa một hoán vị thì xuất

 xuat();

 else

 Try(k + 1);

 Bool[i] = 0;

 }

 }

}

int main() {

 cout << "Mhap n: ";

 cin >> n;

 Try(1);

}

Quảng cáo

book vietjack

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Bình luận


Bình luận
tailieugiaovien.com.vn
tuyen-dung-giao-vien-1900