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

C++-এ রিকারশন দিয়ে সিরিজ 1¹ + 2² + 3³ + ... + nⁿ এর যোগফল


এই সমস্যায়, আমাদের একটি সংখ্যা n দেওয়া আছে যা সিরিজ 1¹ + 2² + 3³ + … + nⁿ-এর nth টার্ম নির্ধারণ করে। আমাদের কাজ হল সিরিজের যোগফল বের করার একটি প্রোগ্রাম তৈরি করা।

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

ইনপুট

n = 4

আউটপুট

30

ব্যাখ্যা - যোগফল = (1¹) + (2²) + (3³) + (4⁴) = 1 + 4 + 27 + 256 = ২৮৮। (মূল টেক্সটে ১+৪+৯+১৬=৩০ লেখা আছে যা ভুল, কারণ ৩³=২৭ এবং ৪⁴=২৫৬।)

এই সমস্যা সমাধান করতে, আমরা 1 থেকে n পর্যন্ত লুপ চালাব। প্রতিটি সংখ্যার ঘাত বের করব। এবং সেগুলো যোগফল ভেরিয়েবলে যোগ করব।

আলগরিদম

যোগফল = 0 আরম্ভ করুন
ধাপ ১: i = 1 থেকে n পর্যন্ত ইটারেট করুন। এবং অনুসরণ করুন:
    ধাপ ১.১: যোগফল আপডেট করুন, sum += i*i
ধাপ ২: যোগফল প্রিন্ট করুন।

C++ প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

long long calcSeriesSum(int n) {
    long long sum = 0;
    for( int i = 1; i <= n; i++ )
        sum += (i*i);
    return sum;
}

int main() {
    int n = 7;
    cout<<"Sum of the series 1^1 + 2^2 + 3^3 + ... + "<<n<<"^"<<n<<" is "<<calcSeriesSum(n);
    return 0;
}

আউটপুট

Sum of the series 1^1 + 2^2 + 3^3 + ... + 7^7 is 140

নোট: প্রদত্ত উদাহরণে ১¹+২²+৩³+৪⁴ = ১+৪+২৭+২৫৬ = ২৮৮ হওয়া উচিত, কিন্তু আউটপুটে ৩০ দেখানো হয়েছে যা ১²+২²+৩²+৪² = ৩০-এর সমান। সমস্যাটির tiêuতলে "1^1 + 2^2 + 3^3 + ... + n^n" লেখা থাকা সত্ত্বেও কোডে i*i (বর্গ) ক্যালকুলেট করা হয়েছে।

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

  2. C++ রিকার্শন ব্যবহার করে ln(N!) এর মান বের করা

  3. C++-এ রিকার্সন ব্যবহার করে ফিবোনাচ্চি সংখ্যা খুঁজে বের করা

  4. রিকার্সন ব্যবহার করে প্রাকৃতিক সংখ্যাগুলোর যোগফল (Sum of Natural Numbers) বের করার C++ প্রোগ্রাম