কম্পিউটার

C++ এ শব্দ তালিকার তালিকা থেকে যে সকল বাক্য গঠন করা যেতে পারে সেগুলি পুনরাবৃত্তভাবে প্রিন্ট করুন


শব্দের একটি তালিকা দেওয়া হয়েছে৷ লক্ষ্য হল সমস্ত সম্ভাব্য বাক্য তৈরি করা যা একটি পুনরাবৃত্ত পদ্ধতি ব্যবহার করে তালিকা থেকে শব্দগুলি নিয়ে গঠিত হতে পারে। আপনি উভয় তালিকা থেকে একবারে শুধুমাত্র একটি শব্দ নিতে পারেন।

আসুন এর জন্য বিভিন্ন ইনপুট আউটপুট পরিস্থিতি দেখি

ইনপুট

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-ডি অ্যারে ঘোষণা করুন। Recursive_Print(বাক্য) হিসাবে ফাংশনে ডেটা পাস করুন।

  • Recursive_Print(বাক্য)

    হিসাবে ফাংশনের ভিতরে
    • arr[row] হিসাবে স্ট্রিং টাইপের একটি অ্যারে তৈরি করুন।

    • i থেকে 0 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না i col থেকে কম হয়। লুপের ভিতরে চেক করুন যদি বাক্য[0][i] খালি না থাকে তারপরে Recursion (sentence, 0, i, arr) হিসেবে ফাংশনে কল করুন।

  • Recursion (স্ট্রিং বাক্য[সারি][কল], int temp_1, int temp_2, string arr[row])

    • arr[temp_1] কে বাক্যে [temp_1][temp_2] সেট করুন।

    • পরীক্ষা করুন যদি temp_1 সারি - 1 হয় তারপর i থেকে 0 থেকে i সারির থেকে কম না হওয়া পর্যন্ত FOR লুপ শুরু করুন। লুপের ভিতরে, arr[i] প্রিন্ট করুন।

    • i থেকে 0 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না 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

  1. C++ এ ডান থেকে বামে একটি বাইনারি গাছের সমস্ত পাতার নোড প্রিন্ট করুন

  2. C++ এ প্রদত্ত নোড থেকে k দূরত্বে সমস্ত নোড প্রিন্ট করুন

  3. C++ এ একটি লিফ নোড থেকে k দূরত্বে থাকা সমস্ত নোড প্রিন্ট করুন

  4. একটি প্রদত্ত উত্স থেকে একটি গন্তব্য C++ এ সমস্ত পথ প্রিন্ট করুন