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
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ụ
CÔNG TY TNHH ĐẦU TƯ VÀ DỊCH VỤ GIÁO DỤC VIETJACK
- Người đại diện: Nguyễn Thanh Tuyền
- Số giấy chứng nhận đăng ký kinh doanh: 0108307822, ngày cấp: 04/06/2018, nơi cấp: Sở Kế hoạch và Đầu tư thành phố Hà Nội.
2021 © All Rights Reserved.