কম্পিউটার টিউটোরিয়াল

C++-এ স্পেশাল ফ্যামিলি (Special Family)-এ পেশা (Profession) নির্ণয়


একটি স্পেশাল ফ্যামিলি আছে ডাক্তার (Doctor) এবং ইঞ্জিনিয়ার (Engineer) দিয়ে। কিছু নিয়ম আছে:

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

যদি লেভেল ৪ এবং পজিশন ২ জানতে চাই, তবে ফলাফল হবে Doctor।

আইডিয়া সহজ। একজন ব্যক্তির পেশা দুটি জিনিসের ওপর নির্ভর করে:

  • প্যারেন্টের পেশা।
  • নোডের পজিশন: যদি পজিশন বিজোড় (odd) হয়, তবে তার পেশা প্যারেন্টের মত হয়। অন্যথায় প্যারেন্ট থেকে ভিন্ন হয়।

রিকার্সিভলি (recursively) প্যারেন্টের পেশা বের করব, তারপর উপরের বিন্দু ২ ব্যবহার করে বর্তমান নোডের পেশা নির্ণয় করব।

উদাহরণ

#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. সি++-এ ত্রিভুজের পেরিমিটার (Perimeter) বের করা

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

  3. C++ প্রোগ্রাম: LCM (লঘুতম সাধারণ গুণিতক) নির্ণয়

  4. C++ প্রোগ্রাম: GCD (মহত্তম সাধারণ ভাজক) নির্ণয়