কম্পিউটার

C++ সাম অ্যারে ধাঁধা


অ্যারে একটি ডেটা কাঠামো যা একই ডেটা টাইপের একাধিক উপাদান সংরক্ষণ করে। এটি একবারে পুরো সেট মান সংরক্ষণ করতে পারে। কিন্তু এর দৈর্ঘ্য আগে থেকেই সংজ্ঞায়িত করা দরকার।

এই সমষ্টি অ্যারে ধাঁধাতে, আমাদেরকে একটি নির্দিষ্ট আকারের একটি অ্যারে দেওয়া হয়েছে যা n বলে। এই ধাঁধাটি সমাধান করার জন্য, আমরা S1 নামক একটি অ্যারে তৈরি করব যা অ্যারের সমস্ত উপাদানের যোগফলকে সঞ্চয় করে ব্যতীত যে উপাদানটির অবস্থান ব্যবহার করা হচ্ছে। উদাহরণ স্বরূপ, যদি S1[3] গণনা করা হয় তাহলে আমরা পজিশন 4 এ থাকা এলিমেন্ট ব্যতীত A1 এর সমস্ত উপাদানের যোগফল খুঁজে পাব।

উদাহরণ -

Array A1 = {1,2,3,4,6}
Output S1 = {15,14,13,12,10}

ব্যাখ্যা − যোগফল অ্যারের গণনা করার জন্য, আমরা প্রাথমিক অ্যারের প্রতিটি উপাদান যোগ করব একটি যোগ ভেরিয়েবলের সাথে সেই মানটি গ্রহণ করব যেটির সমষ্টি অ্যারের মতো একই সংখ্যা রয়েছে। যার অর্থ যোগফল অ্যারের প্রথম উপাদানটির জন্য আমরা অ্যারের প্রথম উপাদান বাদে সমস্ত উপাদানের যোগফল গণনা করব এবং পুরো অ্যারের জন্য একই। আসুন এই যুক্তি ব্যবহার করে সমষ্টি বিন্যাসের প্রতিটি উপাদানের জন্য মান গণনা করি।

যোগফল[0], আমরা 0 th এ উপাদান ছাড়া উপাদানের যোগফল গণনা করব সূচক তাই,

যোগফল[0] =2+3+4+6 =15

একইভাবে, আমরা যোগফলের মান গণনা করব[1]...

যোগফল[1] =1+3+4+6 =14

যোগফল[2] =1+2+4+6 =13

যোগফল[3] =1+2+3+6 =12

যোগফল[4] =1+2+3+4 =10

সুতরাং, সমষ্টি অ্যারের সমস্ত উপাদান প্রস্তুত নয় এবং যোগফল অ্যারে হল যোগফল ={15,14,13,12,10}

অ্যালগরিদম

Step 1 : Initialise a sum array sum[n] to zero, where n = size of the original array.
Step 2 : Iterate over sum[] and do :
   Step 2.1 : For sum[i], run a for loop for j -> 0 to n
   Step 2.2 : if(i != j) {sum[i] += arr[j] }
Step 3: Print sum array using std print statement.

উদাহরণ

#include <iostream>
using namespace std;
int main() {
   int arr[] = { 3, 6, 4, 8, 9 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int leftSum[n], rightSum[n], Sum[n], i, j;
   leftSum[0] = 0;
   rightSum[n - 1] = 0;
   cout<<"The original array is : \n";
   for (i = 0; i < n; i++)
      cout << arr[i] << " ";
   for (i = 1; i < n; i++)
      leftSum[i] = arr[i - 1] + leftSum[i - 1];
   for (j = n - 2; j >= 0; j--)
      rightSum[j] = arr[j + 1] + rightSum[j + 1];
   for (i = 0; i < n; i++)
      Sum[i] = leftSum[i] + rightSum[i];
   cout<<"\nThe sum array is : \n";
   for (i = 0; i < n; i++)
      cout << Sum[i] << " ";
   return 0;
}

আউটপুট

The original array is :
3 6 4 8 9
The sum array is :
27 24 26 22 21

  1. একটি পণ্য অ্যারে ধাঁধা (O(1) স্থান) C++?

  2. C++ স্ট্রিং এর অ্যারে

  3. C++ এ সাজানো হচ্ছে

  4. C++ এ পয়েন্টার গাণিতিক ব্যবহার করে অ্যারের সমষ্টি