কম্পিউটার

C++ এ একটি বিশেষ পরিবারে পেশা খুঁজুন


বিবেচনা করুন ডাক্তার এবং ইঞ্জিনিয়ারদের একটি বিশেষ পরিবার আছে। কিছু নিয়ম আছে, এগুলো নিচের মত -

  • প্রত্যেকের দুটি সন্তান আছে
  • একজন ইঞ্জিনিয়ারের প্রথম সন্তান একজন ইঞ্জিনিয়ার, দ্বিতীয় সন্তান ডাক্তার
  • একজন ডাক্তারের প্রথম সন্তান একজন ডাক্তার, দ্বিতীয় সন্তান একজন ইঞ্জিনিয়ার
  • ডাক্তার এবং ইঞ্জিনিয়ারদের সমস্ত প্রজন্ম ইঞ্জিনিয়ার দিয়ে শুরু হয়

তাই আমরা যদি লেভেল 4 এবং পজিস 2 এর ফলাফল পেতে চাই, তাহলে ফলাফল হবে ডাক্তার

ধারণা সহজ. একজন ব্যক্তির পেশা দুটি অনুসরণের উপর নির্ভর করে।

  • পিতা-মাতার পেশা।
  • নোডের অবস্থান:যখন একটি নোডের অবস্থান বিজোড় হয়, তখন এর পেশাটি তার পিতামাতার মতোই হয়। অন্যথায় পেশা তার পিতামাতার থেকে আলাদা।

আমরা বারবার অভিভাবকের পেশা খুঁজে পাই, তারপর বর্তমান নোডের পেশা খুঁজে পেতে উপরের পয়েন্ট 2 ব্যবহার করি।

উদাহরণ

#include<iostream>
using namespace std;
char getProfession(int level, int pos) {
   if (level == 1)
   return 'E';
   if (getProfession(level-1, (pos+1)/2) == 'D')
   return (pos%2)? 'D' : 'E';
   return (pos%2)? 'E' : 'D';
}
int main(void) {
   int level = 4, pos = 2;
   cout << "The profession is: ";
   if(getProfession(level, pos) == 'E'){
      cout << "Engineer";
   } else {
      cout << "Doctor" ;
   }
}

আউটপুট

The profession is: Doctor

  1. C++ এ একটি ত্রিভুজের পরিধি খুঁজুন

  2. C++ এ ডুপ্লিকেট সাবট্রিস খুঁজুন

  3. LCM খুঁজে পেতে C++ প্রোগ্রাম

  4. GCD খুঁজে পেতে C++ প্রোগ্রাম