khoahoc.vietjack.com

Câu hỏi:

03/07/2023 383 Lư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.

Quảng cáo

Trả lời:

verified Giải bởi Vietjack

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

}

Hot: 1000+ đề thi giữa kì 1 lớp 1-12 đầy đủ các môn (Update 2026) (chỉ từ 60k). Tải ngay

ĐẶC QUYỀN VIP

Đăng ký VIP để học và luyện thi không giới hạn

Trọn bộ quyền lợi trên Vietjack, trong một tài khoản.

  • Phòng luyện thi cấp tốc: ĐGNL - ĐGTD, Tốt nghiệp THPT, Ôn vào 10, Ôn vào 6, Ôn Giữa kì/Cuối kì
  • Hơn 200K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 3tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem hàng ngàn bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện
  • Đăng ký ngay

CÂU HỎI HOT CÙNG CHỦ ĐỀ