এই সমস্যায়, আমাদের একটি অ্যারে দেওয়া হয়েছে arr[]। আমাদের কাজ হল C++-এ অ্যারেতে সর্বাধিক পণ্য চারগুণ (আকার 4 এর উপ-ক্রম) খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা।
কোডের বিবরণ − এখানে, আমাদের একটি চতুর্গুণ (আকার 4 এর উপ-ক্রম) খুঁজে বের করতে হবে যাতে সমস্ত উপাদানের গুণফল সর্বাধিক হয়৷
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট
arr[] ={4, -2, 5, -6, 8}
আউটপুট
840
ব্যাখ্যা
গুণফল 840 সহ চতুর্গুণ, (-3, 5, -7, 8)।
সমাধান পদ্ধতি
একটি প্রদত্ত সমস্যার একাধিক সমাধান হতে পারে৷
একটি সহজ সমাধান হল অ্যারে অতিক্রম করে সরাসরি পদ্ধতি ব্যবহার করা। তারপর অ্যারেতে সম্ভাব্য সকল চতুর্গুণ খুঁজে বের করা। তাদের পণ্য খোঁজা এবং তারপর সর্বোচ্চ পণ্য চারগুণ খুঁজে পেতে এটি তুলনা.
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int max(int a, int b){ if(a> b) রিটার্ন a; রিটার্ন b;}int findMaxProdQuad(int arr[], int n){int maxProd =0; int prod =1; (int i =0; i <=n - 4; i++) for (int j =i + 1; j <=n - 3; j++) for (int k =j + 1; k <=n - 2; k++) এর জন্য (int l =k + 1; l <=n - 1; l++) { prod =arr[i] * arr[j] * arr[k] * arr[l]; maxProd =max(maxProd, prod); prod =1; } রিটার্ন maxProd;}int main(){int arr[] ={4, -2, 5, -6, 8}; int n =sizeof(arr) / sizeof(arr[0]); cout<<"চতুর্গুণের সর্বোচ্চ গুণফল হল "< আউটপুট
চতুর্গুণের সর্বোচ্চ গুণফল হল 480সর্বোচ্চ পণ্যের সাথে চতুর্গুণ খুঁজে বের করার আরেকটি উপায় হল অ্যারের সর্বোচ্চ চারটি উপাদান এবং অ্যারের চারটি সর্বনিম্ন উপাদান খুঁজে পাওয়া।
ধরা যাক mx1, mx2, mx3, mx4 হল প্রথম চারটি সর্বোচ্চ সংখ্যা। এবং mn1, mn2, mn3, mn4 হল অ্যারের প্রথম চারটি সর্বনিম্ন সংখ্যা। তারপর
এর মান খুঁজুন <পূর্ব>1. mx1 * mx2 * mx3 * mx42। mn1 * mn2 * mn3 * mn43। mx1 * mx2 * mn1 * mn2
এবং এই তিনটি পণ্যের সর্বাধিক মান ফেরত দিন যা সর্বোচ্চ পণ্যকে চারগুণ দেবে। এবং সমস্ত ক্ষেত্রে বিবেচনা করা হয়৷
৷আমাদের অ্যালগরিদমের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int max(int a, int b){ if(a> b) রিটার্ন a; রিটার্ন b;}int findMaxProdQuad(int arr[], int n) { int mx1 =-1000, mx2 =-1000, mx3 =-10000, mx4 =-1000; int mn1 =1000, mn2 =1000, mn3 =1000, mn4 =1000; জন্য (int i =0; i mx1){ mx4 =mx3; mx3 =mx2; mx2 =mx1; mx1 =arr[i]; } অন্যথায় যদি(arr[i]> mx2){ mx4 =mx3; mx3 =mx2; mx2 =arr[i]; } অন্যথায় যদি(arr[i]> mx3){ mx4 =mx3; mx3 =arr[i]; } অন্যথা যদি(arr[i]> mx4){ mx4 =arr[i]; } } int maxVal =max (mx1 * mx2 * mx3 * mx4), (mn1 * mn2 * mn3 * mn4)); maxVal =max(maxVal, (mx1 * mx2 * mn1 * mn2)); রিটার্ন maxVal;}int main() { int arr[] ={4, -2, 5, -6, 8}; int n =sizeof(arr) / sizeof(arr[0]); cout<<"চতুর্গুণের সর্বোচ্চ গুণফল হল "< আউটপুট
চতুর্গুণের সর্বোচ্চ গুণফল হল 480আরও একটি পদ্ধতির অ্যারে সাজানো হতে পারে। তারপর চারটি সর্বোচ্চ এবং চারটি সর্বনিম্ন যথাক্রমে অ্যারের শেষ এবং শুরু হবে। তারপর সর্বোচ্চ এবং সর্বনিম্ন তিনটি সংমিশ্রণের সর্বোচ্চ নির্ণয় করে উপরের সমাধানের মত সমাধান করুন।
আমাদের পদ্ধতির বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int findMaxProdQuad(int arr[], int n){ sort(arr, arr + n); int maxVal =max((arr[n-1] * arr[n-2] * arr[n-3] * arr[n-4]), (arr[0] * arr[1] * arr[2] * arr[3])); maxVal =max(maxVal, (arr[n-1] * arr[n-2] * arr[0] * arr[1])); রিটার্ন maxVal;}int main(){int arr[] ={4, -2, 5, -6, 8}; int n =sizeof(arr) / sizeof(arr[0]); cout<<"চতুর্গুণের সর্বোচ্চ গুণফল হল "< আউটপুট
চতুর্গুণের সর্বোচ্চ গুণফল হল 480