Computer >> Máy Tính >  >> Lập trình >> C ++

In đệ quy tất cả các câu có thể được tạo từ danh sách danh sách từ trong C ++


Cho một danh sách các từ. Mục đích là tạo ra tất cả các câu khả thi có thể được hình thành bằng cách lấy các từ từ danh sách bằng cách sử dụng phương pháp đệ quy. Bạn chỉ có thể lấy một từ mỗi lần từ cả hai danh sách.

Hãy để chúng tôi xem các kịch bản đầu ra đầu vào khác nhau cho việc này

Đầu vào -

 câu [row] [col] ={{"I", "You"}, {"Do", "không thích"}, {"đi bộ", "ăn"}} 

Đầu ra -

 Tôi Đi bộ Tôi thích ăn Tôi thích đi bộ Thích ăn Bạn đi bộ Bạn ăn uống Bạn thích đi bộ Bạn thích ăn uống 

Giải thích - Lấy một từ từ mỗi danh sách trong câu [0-2] cho các câu trên.

Đầu vào -

 câu [row] [col] ={{"work", "live"}, {"easy", "happy"}} 

Đầu ra -

 làm việc vui vẻ, làm việc vui vẻ dễ sống vui vẻ 

Giải thích - Lấy một từ từ mỗi danh sách trong câu [0-1] cho các câu trên.

  • Khai báo mảng 2-D kiểu chuỗi như câu [row] [col]. Truyền dữ liệu vào hàm dưới dạng Recursive_Print (câu).

  • Bên trong hàm dưới dạng Recursive_Print (câu)

    • Tạo một mảng kiểu chuỗi là arr [row].

    • Bắt đầu vòng lặp FOR từ i đến 0 cho đến khi tôi nhỏ hơn col. Bên trong vòng lặp, kiểm tra IF câu [0] [i] có trống không, sau đó thực hiện lệnh gọi hàm dưới dạng Đệ quy (câu, 0, i, arr).

  • Bên trong hàm dưới dạng Đệ quy (chuỗi câu [hàng] [col], int temp_1, int temp_2, chuỗi arr [hàng])

    • Đặt arr [temp_1] thành câu [temp_1] [temp_2].

    • Kiểm tra IF temp_1 là hàng - 1 rồi bắt đầu vòng lặp FOR từ i đến 0 cho đến khi tôi nhỏ hơn hàng. Bên trong vòng lặp, in arr [i].

    • Bắt đầu vòng lặp FOR từ i đến 0 cho đến khi tôi nhỏ hơn col. Bên trong vòng lặp, hãy kiểm tra IF câu [temp_1 + 1] [i] không bằng khoảng trắng, sau đó thực hiện lệnh gọi đệ quy đến hàm dưới dạng Đệ quy (câu, temp_1 + 1, i, arr).

  • In kết quả.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

Ví dụ

 #include  #define row 3 # define col 3using namespace std; void Recursion (string câu [row] [col], int temp_1, int temp_2, string arr [row]) {arr [ temp_1] =câu [temp_1] [temp_2]; if (temp_1 ==row - 1) {for (int i =0; i  

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra Kết quả sau

 Ajay Like Reading