ระบุรายการคำ เป้าหมายคือการสร้างประโยคที่เป็นไปได้ทั้งหมดที่สามารถสร้างได้โดยการนำคำจากรายการโดยใช้วิธีการแบบเรียกซ้ำ คุณสามารถใช้ได้ครั้งละหนึ่งคำเท่านั้นจากทั้งสองรายการ
ให้เราดูสถานการณ์อินพุตเอาต์พุตต่างๆ สำหรับสิ่งนี้
ป้อนข้อมูล −
sentence[row][col] = {{"I", "You"},
{"Do", "do not like"},
{"walking", "eating"}} ผลผลิต −
I Do walking I Do eating I like walking I like eating You Do walking You Do eating You like walking You like eating
คำอธิบาย − รับหนึ่งคำจากแต่ละรายการในประโยค[0-2] ให้ประโยคข้างบน
ป้อนข้อมูล −
sentence[row][col] = {{"work", "live"},{"easy", "happily"}} ผลผลิต −
work easy work happily live easy live happily
คำอธิบาย − นำหนึ่งคำจากแต่ละรายการในประโยค[0-1] ให้ประโยคข้างบน
-
ประกาศอาร์เรย์ 2 มิติของประเภทสตริงเป็นประโยค[row][col] ส่งข้อมูลไปยังฟังก์ชันเป็น Recursive_Print(ประโยค)
-
ภายในฟังก์ชันเป็น Recursive_Print(ประโยค)
-
สร้างอาร์เรย์ของประเภทสตริงเป็น arr[row].
-
เริ่มลูป FOR จาก i ถึง 0 จนถึง i น้อยกว่า col ภายในลูป ให้ตรวจสอบว่าประโยค IF[0][i] ไม่ว่าง จากนั้นให้เรียกใช้ฟังก์ชันเป็น Recursion(sentence, 0, i, arr)
-
-
ภายในฟังก์ชันเป็น Recursion(string sentence[row][col], int temp_1, int temp_2, string arr[row])
-
ตั้งค่า arr[temp_1] เป็นประโยค[temp_1][temp_2].
-
ตรวจสอบว่า temp_1 เป็นแถว - 1 แล้วเริ่มวนซ้ำ FOR จาก i ถึง 0 จนถึง i น้อยกว่าแถว ภายในลูป พิมพ์ arr[i].
-
เริ่มลูป FOR จาก i ถึง 0 จนถึง i น้อยกว่า col ภายในลูป ให้ตรวจสอบว่าประโยค IF[temp_1+1][i] ไม่เท่ากับช่องว่าง จากนั้นให้เรียกใช้ฟังก์ชันแบบเรียกซ้ำเป็น Recursion(sentence, temp_1+1, i, arr)
-
-
พิมพ์ผลลัพธ์
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
ตัวอย่าง
#include<bits/stdc++.h>
#define row 3
#define col 3
using namespace std;
void Recursion(string sentence[row][col], int temp_1, int temp_2, string arr[row]){
arr[temp_1] = sentence[temp_1][temp_2];
if(temp_1 == row - 1){
for(int i=0; i < row; i++){
cout << arr[i] << " ";
}
cout << endl;
return;
}
for(int i=0; i < col; i++){
if(sentence[temp_1+1][i] != ""){
Recursion(sentence, temp_1+1, i, arr);
}
}
}
void Recursive_Print(string sentence[row][col]){
string arr[row];
for(int i=0; i < col; i++){
if(sentence[0][i] != ""){
Recursion(sentence, 0, i, arr);
}
}
}
int main(){
string sentence[row][col] = {{"Ajay", "sanjay"},{"Like", "is"},{"Reading", "eating"}};
Recursive_Print(sentence);
return 0;
} ผลลัพธ์
หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้
Ajay Like Reading Ajay Like eating Ajay is Reading Ajay is eating sanjay Like Reading sanjay Like eating sanjay is Reading sanjay is eating