Chuyên đề 3: Thực hành thiết kế thuật toán theo kĩ thu..

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


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.

Tổng hợp đề thi học kì 2 lớp 11 tất cả các môn - Cánh diều

Toán - Văn - Anh - Lí - Hóa - Sinh

Lựa chọn câu để xem lời giải nhanh hơn

Vận dụng

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 chi tiết:

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

}

 


Bình chọn:
4.9 trên 7 phiếu

>> Xem thêm

Group 2K8 ôn Thi ĐGNL & ĐGTD Miễn Phí