Chuyên đề Tin học 11 (Cánh diều) Bài 3: Thực hành kĩ thuật quay lui 

223

Toptailieu.vn biên soạn và giới thiệu lời giải Chuyên đề Tin học 11 (Cánh diều) Bài 3: Thực hành kĩ thuật quay lui hay, chi tiết sẽ giúp học sinh dễ dàng trả lời câu hỏi từ đó học tốt môn Chuyên đề Tin học 11.

Chuyên đề Tin học 11 (Cánh diều) Bài 3: Thực hành kĩ thuật quay lui 

Vận dụng trang 62 Chuyên đề Tin học 11: 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.

Lời giải:

#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);

}

Xem thêm các bài giải Chuyên đề Tin học 11 Cánh diều hay, chi tiết khác:

Chuyên đề Tin học 11 (Cánh diều) Bài 1: Kĩ thuật duyệt

Chuyên đề Tin học 11 (Cánh diều) Bài 2: Kĩ thuật quay lui

Chuyên đề Tin học 11 (Cánh diều) Bài 4: Thực hành tổng hợp kĩ thuật duyệt

Chuyên đề Tin học 11 (Cánh diều) Bài 5: Thực hành kĩ thuật quay lui giải bài toán xếp hậu

Chuyên đề Tin học 11 (Cánh diều) Bài 1: Khái niệm đệ quy và ví dụ

Đánh giá

0

0 đánh giá