কম্পিউটার

C++ এ অ্যারের মানের ত্রিভুজাকার বিন্যাসের সর্বোচ্চ উচ্চতা


সমস্যা বিবৃতি

একটি অ্যারের দেওয়া, আমাদের অ্যারের মানগুলি থেকে ত্রিভুজের সর্বোচ্চ উচ্চতা খুঁজে বের করতে হবে যা আমরা তৈরি করতে পারি, যেমন প্রতিটি (i+1) th লেভেলে আগের লেভেল থেকে বড় যোগফল সহ আরও উপাদান থাকে।

উদাহরণ

যদি ইনপুট অ্যারে হয় {40, 100, 20, 30 } তাহলে উত্তর হল 2 হিসাবে −

আমাদের নীচের স্তরে 100 এবং 20 এবং পিরামিডের উপরের স্তরে 40 বা 30 থাকতে পারে

অ্যালগরিদম

আমাদের সমাধান শুধুমাত্র এই যুক্তির উপর নিহিত যে যদি আমাদের পিরামিডের জন্য সর্বোচ্চ উচ্চতা h থাকে তাহলে ( h * (h + 1) ) / 2 টি উপাদান অবশ্যই অ্যারেতে উপস্থিত থাকতে হবে

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int getMaximumHeight(int *arr, int n) {
   int result = 1;
   for (int i = 1; i <= n; ++i) {
      long long y = (i * (i + 1)) / 2;
      if (y < n) {
         result = i;
      } else {
         break;
      }
   }
   return result;
}
int main() {
   int arr[] = {40, 100, 20, 30};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Result = " << getMaximumHeight(arr, n) << endl;
   return 0;
}

আউটপুট

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
Result = 2

  1. C++ এ বস্তুর প্রদত্ত অ্যারে থেকে সর্বোচ্চ উচ্চতার পিরামিড খুঁজুন

  2. C++ এ একটি অ্যারেতে একটি জোড়ার সর্বোচ্চ বিটওয়াইজ এবং মান

  3. C++ এ একটি অ্যারে বিপরীত করুন

  4. C++ এ একটি অ্যারেতে সর্বাধিক GCD সহ জোড়া খুঁজুন