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

C++-এ দেওয়া স্টিক সেট থেকে সম্ভাব্য রেক্ট্যাঙ্গেল ও স্কোয়ারের সংখ্যা


এই সমস্যাতে, N পূর্ণসংখ্যার একটি অ্যারে দেওয়া আছে যা n টি স্টিকের দৈর্ঘ্য নির্দেশ করে। আমাদের কাজ হলো দেওয়া দৈর্ঘ্যের স্টিকগুলো থেকে কতগুলো রেক্ট্যাঙ্গেল এবং স্কোয়ার তৈরি করা সম্ভব সেটা প্রিন্ট করা।

উদাহরণ:

ইনপুট - array = {5, 5, 7, 7, 1, 4}

আউটপুট - 1

ব্যাখ্যা - ৫ ৫ ৭ ৭ পাশের একটি রেক্ট্যাঙ্গেল।

সমাধানের জন্য, আমাদের চেক করতে হবে রেক্ট্যাঙ্গেল এবং স্কোয়ার তৈরি সম্ভব কিনা।

এখন, স্কোয়ার বা রেক্ট্যাঙ্গেল তৈরি করতে একই দৈর্ঘ্যের দুটি স্টিক লাগবে, রেক্ট্যাঙ্গেলের জন্য ২ এবং স্কোয়ারের জন্য ৪। আমাদের অ্যারেতে একই দৈর্ঘ্যের স্টিকের জোড়া খুঁজে বের করতে হবে। সার্চ সহজ করার জন্য, আমরা অ্যারেটি সোর্ট করব এবং তারপর জোড়া খুঁজে বের করব। মোট জোড়ার সংখ্যায় ২ দিয়ে ভাগ করলে স্কোয়ার বা রেক্ট্যাঙ্গেলের সংখ্যা পাওয়া যাবে।

উদাহরণ

সমাধানের প্রোগ্রাম:

#include <bits/stdc++.h> 
using namespace std; 

int countRecSqr(int sticks[], int n) {
    sort(sticks, sticks + n);
    int pairs = 0;
    for (int i = 0; i < n - 1; i++) {
        if (sticks[i] == sticks[i + 1]) {
            pairs++;
            i++;
        }
    }
    return pairs / 2;
}

int main() {
    int sticks[] = { 2, 2, 4, 4, 4, 4, 6, 6, 6, 7, 7, 9, 9 };
    int n = sizeof(sticks) / sizeof(sticks[0]);
    cout << "The total number of squares or rectangles that can be created is ";
    cout << countRecSqr(sticks, n);
    return 0;
}

আউটপুট

The total number of squares or rectangles that can be created is 3

  1. C++-এ দिये गये আয়তের ভেতরে সম্ভাব্য রম্বসের সংখ্যা গণনা

  2. বিজোড় এবং জোড় সংখ্যক নোড वाले ট্রি লেভেল প্রিন্ট করা C++-তে

  3. দেওয়া অঙ্কগুলো দিয়ে গঠিত সর্বোচ্চ সংখ্যা খুঁজে বের করা C++-তে

  4. LCM এবং HCF দিয়ে অন্য সংখ্যা বের করা (C++)