কম্পিউটার টিউটোরিয়াল

C++-এ সিরিজ 2 + (2+4) + (2+4+6) + ... + (2+4+...+2n) এর যোগফল


এই সমস্যায়, আমাদের একটি সংখ্যা n দেওয়া আছে যা সিরিজ 2 + (2+4) + (2+4+6) + (2+4+6+8) + ... + (2+4+6+8+...+2n)-এর nth টার্ম নির্ধারণ করে। আমাদের কাজ হল সিরিজের যোগফল নির্ণয় করার জন্য একটি প্রোগ্রাম তৈরি করা।

উদাহরণ দিয়ে বোঝা যাক

ইনপুট

n = 3

আউটপুট

ব্যাখ্যা - যোগফল = (2) + (2+4) + (2+4+6) = 2 + 6 + 12 = ২০

এই সমস্যা সমাধানের একটি সহজ পদ্ধতি হল নেস্টেড লুপ ব্যবহার করা। ইনার লুপ সিরিজের i-তম উপাদান বের করে এবং সব উপাদান যোগফলে যোগ করে।

C++ প্রোগ্রাম উদাহরণ (নেস্টেড লুপ পদ্ধতি)

#include <iostream>
using namespace std;

int calcSeriesSum(int n) {
    int sum = 0;
    for (int i = 1; i<=n; i++) {
        int even = 2;
        for (int j = 1; j<=i; j++) {
            sum += even;
            even += 2;
        }
    }
    return sum;
}

int main() {
    int n = 5;
    cout<<"Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+"<<(2*n)<<") is "<<calcSeriesSum(n);
    return 0;
}

আউটপুট

Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+10) is 70

এটি সমস্যা সমাধানের সবচেয়ে কার্যকর পদ্ধতি নয় কারণ এর টাইম কমপ্লেক্সিটি O(n²)।

দক্ষ সমাধান: গাণিতিক ফর্মুলা

একটি দক্ষ সমাধান হল সিরিজের যোগফলের গাণিতিক ফর্মুলা ব্যবহার করা।

সিরিজটি হল: 2 + (2+4) + (2+4+6) + (2+4+6+8) + ... + (2+4+6+8+...+2n)

সিরিজের nth টার্ম হল:

aₙ = (2 + 4 + 6 + 8 + … + 2n) = (n*n) + n

aₙ হল n পর্যন্ত জোড় সংখ্যাগুলোর যোগফল।

সিরিজের যোগফল হল:

যোগফল = 2 + (2+4) + (2+4+6) + (2+4+6+8) + ... + (2+4+6+8+...+2n)
যোগফল = Σ (n² + n)
যোগফল = Σ n² + Σ n
যোগফল = [ n(n+1)(2n+1)/6 ] + [ n(n+1)/2 ]
যোগফল = ½ n(n+1) [ (2n+1)/3 + 1 ]
যোগফল = ½ n(n+1) [ (2n+4)/3 ]
যোগফল = ⅓ n(n+1)(n+2)

C++ প্রোগ্রাম উদাহরণ (ফর্মুলা পদ্ধতি)

#include <iostream>
using namespace std;

int calcSeriesSum(int n) {
    return ((n)*(n+1)*(n+2)/3);
}

int main() {
    int n = 5;
    cout<<"Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+"<<(2*n)<<") is "<<calcSeriesSum(n);
    return 0;
}

আউটপুট

Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+10) is 70
  1. C++-এ arr[i]*i এর যোগফল সর্বাধিক করা

  2. C++ প্রোগ্রাম: সিরিজ 1 + 1/2² + 1/3³ + … + 1/nⁿ-এর যোগফল বের করা

  3. C++ প্রোগ্রাম: সিরিজ 23 + 45 + 75 + … N টার্ম পর্যন্ত যোগফল

  4. C++ প্রোগ্রাম: সমান্তরাল শ্রেণির যোগফল