কম্পিউটার

C++ এ বারবার বিয়োগ করে সব উপাদান একই করার পর সর্বাধিক অ্যারের যোগফল খুঁজুন


ধরুন আমাদের n উপাদানের একটি অ্যারে আছে। সমস্ত উপাদানের সর্বাধিক সম্ভাব্য যোগফল নির্ণয় করুন যেমন সমস্ত উপাদান একই। শুধুমাত্র যে ক্রিয়াকলাপ অনুমোদিত তা হল যেকোন দুটি উপাদান নির্বাচন করা এবং দুটির সম্পূর্ণ পার্থক্য দ্বারা তাদের মধ্যে বড়টিকে প্রতিস্থাপন করা। ধরুন উপাদানগুলো হল [9, 12, 3, 6]। তাহলে আউটপুট হবে 12। তাই প্রথমে A[1] কে A[1] – A[3] =12 – 6 =6 দিয়ে প্রতিস্থাপন করুন। সুতরাং এখন উপাদানগুলি হল [9, 6, 3, 6], তারপর A[1] প্রতিস্থাপন করুন। 3] এর সাথে A[3] – A[2] =6 – 3 =3. সুতরাং উপাদানগুলি হল [9, 6, 3, 3]। তারপর A[0] কে A[0] – A[1] =9 – 6 =3 দিয়ে প্রতিস্থাপন করুন। সুতরাং উপাদানগুলি হল [3, 6, 3, 3]। এবং অবশেষে A[1] কে A[1] – A[3] =6 – 3 =3 দিয়ে প্রতিস্থাপন করুন। সুতরাং উপাদানগুলি হল [3, 3, 3, 3]। তাই সব একই। এবং যোগফল হল 12

যদি আমরা অপারেশনটি বিশ্লেষণ করি, এটি হবে A[i] =A[i] – A[j], যেখানে A[i]> A[j]। তাই আমরা দুটি সংখ্যা নেব, তারপর তাদের মধ্যে পরম পার্থক্য দ্বারা বড় মান প্রতিস্থাপন করব। তারপর এই পদক্ষেপগুলি পুনরাবৃত্তি করুন যতক্ষণ না সব একই হয়৷

উদাহরণ

#include<iostream>
#include<algorithm>
using namespace std;
int findSameElement(int arr[], int n) {
   int gcd_val = arr[0];
   for (int i = 1; i < n; i++)
   gcd_val = __gcd(arr[i], gcd_val);
   return gcd_val;
}
int getMaxSum(int arr[], int n) {
   int value = findSameElement(arr, n);
   return (value * n);
}
int main() {
   int arr[] = {3, 9, 6, 6};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "The maximum sum is: " << getMaxSum(arr, n);
}

আউটপুট

The maximum sum is: 12

  1. C++-এ সর্বাধিক K অ্যারে উপাদানের চিহ্ন ফ্লিপ করে সর্বাধিক সাব্যারে যোগফল

  2. C++ এ বারবার বিয়োগ করে সব উপাদান একই করার পর সর্বাধিক অ্যারের যোগফল খুঁজুন

  3. C++ ব্যবহার করে ম্যাট্রিক্সে সর্বোচ্চ যোগফল সহ কলাম খুঁজুন।

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