Bài 3: Thực hành kĩ thuật quay lui - Chuyên đề Tin học 11 Cánh diềuEm 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. GÓP Ý HAY - NHẬN NGAY QUÀ CHẤT Gửi góp ý cho HocTot.XYZ và nhận về những phần quà hấp dẫn
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); }
>> 2K9 Học trực tuyến - Định hướng luyện thi TN THPT, ĐGNL, ĐGTD ngay từ lớp 11 (Xem ngay) cùng thầy cô giáo giỏi trên Tuyensinh247.com. Bứt phá điểm 9,10 chỉ sau 3 tháng, tiếp cận sớm các kì thi.
|