Tailieumoi.vn giới thiệu giải Chuyên đề Tin học lớp 11 Bài 3: Thực hành kĩ thuật quay lui sách Cánh diều hay, chi tiết giúp học sinh xem và so sánh lời giải từ đó biết cách làm Chuyên đề học tập Tin học 11. Mời các bạn đón xem:
Giải Chuyên đề Tin học 11 Bài 3: Thực hành kĩ thuật quay lui
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 lời giải bài tập Chuyên đề học tập Tin học lớp 11 Cánh diều hay, chi tiết khác:
Bài 3: Thực hành kĩ thuật quay lui
Bài 4: Thực hành tổng hợp kĩ thuật duyệt