단어 목록이 제공됩니다. 목표는 재귀적 접근 방식을 사용하여 목록에서 단어를 가져와서 형성할 수 있는 모든 가능한 문장을 만드는 것입니다. 두 목록에서 한 번에 한 단어만 사용할 수 있습니다.
이를 위한 다양한 입력 출력 시나리오를 살펴보겠습니다.
입력 -
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(sentence)로 전달합니다.
-
Recursive_Print(sentence)
로 함수 내부-
string형 배열을 arr[row]로 생성합니다.
-
i가 col보다 작을 때까지 루프 FOR를 i에서 0으로 시작합니다. 루프 내에서 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인지 확인한 다음 i가 행보다 작을 때까지 루프 FOR를 i에서 0으로 시작합니다. 루프 내부에서 arr[i]를 인쇄합니다.
-
i가 col보다 작을 때까지 루프 FOR를 i에서 0으로 시작합니다. 루프 내에서 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