কিউমিউলেটিভ সাম(Cumulative Sum)

কিউমিউলেটিভ সাম মানে পর পর অনেক উপাদানের যোগফল।

একটা অ্যারে দেয়া আছে তার উপাদান গুলোর কিউমিউলেটিভ যোগফল বের করতে হবে।

যেমনঃ ইনপুট arr[ ] = {10,20,30,40,50} হলে আউটপুট হবে arr[ ] = {10,30,60,100,150}। প্রথমে একটি সমান দৈর্ঘের(ইনপুট অ্যারের সমান) অ্যারে নিব যেটি হবে কিউমিউলেটিভ সামের অ্যারে।

using System;
namespace cSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = {10,20,30,40,50};
            int length = arr.Length;
            int[] cumalativeSum = new int[length];
            cumalativeSum[0] = arr[0];
            for(int i = 1; i<length; i++) {
                cumalativeSum[i] = cumalativeSum[i-1] + arr[i];
            }
            for(int i = 0; i<length; i++){
                Console.WriteLine(cumalativeSum[i] + " ");
            }
        }
    }
}

এখানে প্রথমে ইনপুট অ্যারের লেন্থ বের করেছি। তারপর সমান লেন্থ এর আরেকটি অ্যারে নিয়েছি যেখানে কিউমিউলেটিভ যোগফল থাকবে। প্রথম উপাদানের আগে কিছু নেই। cumalativeSum[0] = arr[0] মাধ্যমে ইনপুট অ্যারের প্রথম উপাদান cumalativeSum[] আরেতে assign করে নিয়েছি। তারপর লুপ ১ তম ইনডেক্স থেকে শুরু করেছি। তারপর arr[i] এর সাথে cumalativeSum[i-1] যোগ করে cumalativeSum[i] তে রেখেছি। এভাবে O(n) সময়ে কিউমিউলেটিভ যোগফল বের করা যায়।

 

ফেসবুক এ শেয়ার করুন

Leave a Reply

Your email address will not be published. Required fields are marked *