কম্পিউটার

C++-এ অ্যারেতে প্রতিটি Kth উপাদান নেওয়ার সর্বোচ্চ যোগফল খুঁজুন


এই সমস্যায়, আমাদের একটি অ্যারে অ্যারে [] এবং একটি পূর্ণসংখ্যা k দেওয়া হয়েছে। আমাদের কাজ হল অ্যারের প্রতিটি Kth উপাদান নিয়ে সর্বাধিক যোগফল খুঁজে বের করা।

সমস্যার বিবরণ:আমাদের অ্যারের উপাদানগুলির সর্বাধিক যোগফল খুঁজে বের করতে হবে যাতে সেগুলি k সূচী আলাদা হয়। আমাদের যোগফল সর্বাধিক করতে হবে,

যোগফল =arr[i] + arr[i+k] + arr[i + 2*k] + …. arr[i + p*k], যেমন (i + p*k)

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

arr[] = {5, 3, −1, 2, 4, −5, 6}, k = 4

আউটপুট

9

ব্যাখ্যা

All sums of every kth element is
5 + 4 = 9
3 − 5 = −2
−1 + 6 = 5
2
4
−5
6
The maximum is 9

সমাধান পদ্ধতি

সমস্যার একটি সহজ সমাধান হল দুটি নেস্টেড লুপ ব্যবহার করে, বাইরেরটি অ্যারের প্রতিটি উপাদানের জন্য এবং ভিতরেরটি i থেকে প্রতিটি kth উপাদান নেওয়ার যোগফল বের করতে ব্যবহৃত হয়। যেমন sum =arr[i] + arr[i + k] + arr[i + 2*k] + … + arr[i + p*k] যেমন (i + p*k)

এবং সর্বোচ্চ পরিমাণ ফেরত দিন।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
using namespace std;
int findMaxSumK(int arr[], int n, int K){
   int maxSum = -1000;
   for (int i = 0; i < n; i++) {
      int current_Sum = 0;
      for (int j = i; j < n; j += K)
         current_Sum = current_Sum + arr[j];
         maxSum = max(maxSum, current_Sum);
   }
   return maxSum;
}
int main(){
   int arr[] = {5, 3, -1, 2, 4, -5, 6};
   int n = sizeof(arr) / sizeof(arr[0]);
   int K = 3;
   cout<<"The maximum sum taking every Kth element in the array is
   "<<findMaxSumK(arr, n, K);
   return (0);
}

আউটপুট

The maximum sum taking every Kth element in the array is 13

একটি সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
using namespace std;
int findMaxSumK(int arr[], int n, int K) {
   int maxSum = -1000;
   int suffSum[n] = {0};
   for (int i = n - 1; i >= 0; i--) {
      if (i + K < n)
         suffSum[i] = suffSum[i + K] + arr[i];
      else
         suffSum[i] = arr[i];
         maxSum = max(maxSum, suffSum[i]);
   }
   return maxSum;
}
int main(){
   int arr[] = {5, 3, -1, 2, 4, -5, 6};
   int n = sizeof(arr) / sizeof(arr[0]);
   int K = 3;
   cout<<"The maximum sum taking every Kth element in the array is
   "<<findMaxSumK(arr, n, K);
   return (0);
}

আউটপুট

The maximum sum taking every Kth element in the array is 13

  1. C++ এ একটি অ্যারেতে ফ্যাক্টোরিয়ালের যোগফল খুঁজুন

  2. C++ এ অ্যারের প্রতিটি উপাদানের জন্য নিকটতম মান খুঁজুন

  3. C++-এ অ্যারের প্রতিটি উপাদানের জন্য নিকটতম বৃহত্তর মান খুঁজুন

  4. অ্যারে পার্টিশন করার পদ্ধতি দ্বারা kth ক্ষুদ্রতম উপাদান খুঁজে বের করার জন্য C++ প্রোগ্রাম