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

C++-এ অ্যারে মান থেকে ট্রায়앵글 বানানো সম্ভব কিনা


এই সমস্যাতে, একটি পূর্ণসংখ্যার অ্যারে দেওয়া আছে। আমাদের কাজ হলো চেক করা অ্যারের উপাদানগুলো বাহু হিসেবে ব্যবহার করে একটি নন-ডিজেনারেট ট্রায়্যাঙ্গেল বানানো সম্ভব কিনা।

নন-ডিজেনারেট ট্রায়্যাঙ্গেল - এটি একটি ট্রায়্যাঙ্গেল যার এরিয়া পজিটিভ। a, b, c বাহু সহ নন-ডিজেনারেট ট্রায়্যাঙ্গেলের শর্ত:

a + b > c
a + c > b
b + c > a

উদাহরণ:

ইনপুট - arr[2, 5, 9, 4, 3]

আউটপুট - Yes

ব্যাখ্যা - তৈরি ট্রায়্যাঙ্গেল: 2 3 4।

সমাধানের জন্য, আমরা চেক করব উপরের শর্তগুলো অ্যারের মানগুলো পূরণ করে কিনা।

একটি নেইভ সমাধান হবে অ্যারের প্রতিটি ট্রিপলেট সরাসরি চেক করা।

একটি আরও কার্যকর সমাধান হবে অ্যারে সর্ট করে এবং তিনটি kontinuous ট্রিপলেট চেক করা। কারণ সোর্টেড অ্যারেতে যদি দুটি এলিমেন্টের যোগফল পরেরটির চেয়ে বড় না হয়, তবে তার পরের মানগুলো চেক করার মানে নেই (সেগুলো ইতিমধ্যে বড়)।

উদাহরণ

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

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

bool isTrianglePossible(int arr[], int N) {
    if (N < 3)
        return false;
    sort(arr, arr + N);
    for (int i = 0; i < N - 2; i++)
        if (arr[i] + arr[i + 1] > arr[i + 2])
            return true;
    return false;
}

int main() {
    int arr[] = {5, 12, 13, 65, 6, 1};
    int N = sizeof(arr) / sizeof(int);
    cout << "Creation of triangle from elements of array ";
    isTrianglePossible(arr, N) ? cout << "is Possible" : cout << "is not Possible";
    return 0;
}

আউটপুট

Creation of triangle from elements of array is Possible

  1. C++-এ x¹, x², ....., xⁿ থেকে প্রাপ্ত মানের ডিজিটের ফ্রিকোয়েন্সি অ্যারে কনস্ট্রাক্ট

  2. দুটি সম্ভাব্য মান থেকে অন্য মান ভেরিয়েবলে অ্যাসাইন করা C++-এ

  3. সি++ ফাংশন থেকে একাধিক মান রিটার্ন করা

  4. C++-এ ফাংশন থেকে অ্যারে রিটার্ন কীভাবে করবেন?