ระบุรายการคำ เป้าหมายคือการสร้างประโยคที่เป็นไปได้ทั้งหมดที่สามารถสร้างได้โดยการนำคำจากรายการโดยใช้วิธีการแบบเรียกซ้ำ คุณสามารถใช้ได้ครั้งละหนึ่งคำเท่านั้นจากทั้งสองรายการ
ให้เราดูสถานการณ์อินพุตเอาต์พุตต่างๆ สำหรับสิ่งนี้
ป้อนข้อมูล −
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