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

সি++-এ একজন ব্যক্তি সর্বোচ্চ একজনের সাথে পেয়ার বানাতে পারলে পেয়ার গণনা

একটি কোডিং প্রতিযোগিতায় N সংখ্যক অংশগ্রহী দেওয়া আছে। লক্ষ্য হল পেয়ার बनाने के উপায় গণনা করা যখন একজন ব্যক্তি সর্বোচ্চ একজন অন্যের সাথে পেয়ার বানাতে পারে। তাই একটি পেয়ারে সর্বোচ্চ ২ জন অংশগ্রহী থাকবে। অংশগ্রহীদের একলাও অংশ নেওয়ার অনুমতি আছে।

রিকারেন্স ব্যবহার করে সমাধান করা যায়:

  • count=1 যখন n=0 বা 1 (শুধু একজন বাকি)
  • যদি ব্যক্তিটি একলা থাকে, n হয় n-1
  • বাকি পেয়ার বানাতে n-2 জন বাকি
  • count = makePairs(p-1) + (p-1)*makePairs(p-2)

উদাহরণ

ইনপুট: persons=3

আউটপুট: পেয়ার বানানোর উপায়: ৪

ব্যাখ্যা: a,b,c তিনজন হলে: (a,b)+(c), (a,c)+(b), (b,c)+(a), (a)+(b)+(c) = ৪ উপায়।

ইনপুট: persons=2

আউটপুট: পেয়ার বানানোর উপায়: ২

ব্যাখ্যা: a,b دوজন হলে: (a,b) এবং (a)+(b) = ২ উপায়।

অ্যাপ্রোচ

  • person ইন্টিজার ভেরিয়েবলে অংশগ্রহীর সংখ্যা।
  • makePairs(int p) ফাংশন অংশগ্রহীর সংখ্যা গ্রহণ করে পেয়ার বানানোর উপায় রিটার্ন করে।
  • প্রাথমিক count ০।
  • যদি p==0 বা 1 হয়, count=1 (শুধু একলা থাকার উপায়)।
  • অন্যথায় count = makePairs(p-1) + (p-1)*makePairs(p-2)।

উদাহরণ কোড

#include <iostream>
using namespace std;

int makePairs(int p) {
    int count = 0;
    if (p == 0 || p == 1) {
        count = 1;
    } else {
        count = makePairs(p-1) + (p-1)*makePairs(p-2);
    }
    return count;
}

int main() {
    int persons = 5;
    cout << "Number of ways to make pair ( or remain single ):" << makePairs(persons);
    return 0;
}

আউটপুট

Number of ways to make pair ( or remain single ): 26
  1. C++-এ সর্বোচ্চ পানি ধারণকারী কন্টেইনার (Container With Most Water)

  2. C++-এ K পেয়ার উইথ স্ম্যালেস্ট সমস

  3. C++-এ পেয়ারের unordered_map তৈরি করা

  4. C++ STL-এ Pair বাস্তবায়ন: দুটি মান একসাথে সংরক্ষণ