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

C++-এ সিরিজ ১-২+৩-৪+৫-৬+৭... এর যোগফল বের করুন

একটি পূর্ণসংখ্যা N দেওয়া আছে। সিরিজ 1 - 2 + 3 - 4 + 5 - 6 + 7 ... এর প্রথম N টার্মের যোগফল বের করতে হবে।

উদাহরণ

ইনপুট: N = 4 → আউটপুট: -2

ব্যাখ্যা: 1 - 2 + 3 - 4 = -2

প্যাটার্ন আবিষ্কার

কয়েকটি মান দিয়ে চেক করলে প্যাটার্ন দেখা যায়:

  • sum(1) = 1
  • sum(2) = -1
  • sum(3) = 2
  • sum(4) = -2
  • sum(5) = 3
  • sum(6) = -3
  • sum(7) = 4
  • sum(8) = -4

সূত্র

  • যদি N বিজোড়: Sum = (N + 1) / 2
  • যদি N জোড়: Sum = -N / 2

এটি O(1) টাইমে সমাধান হয়, কোনো লুপ লাগে না।

C++ প্রোগ্রাম

#include <iostream>
using namespace std;

int calcSumNTerms(int n) {
    if (n % 2 == 0)
        return (-1) * (n / 2);
    return (n + 1) / 2;
}

int main() {
    int n = 156;
    cout << "The sum of series upto n terms is " << calcSumNTerms(n);
    return 0;
}

আউটপুট

The sum of series upto n terms is -78

ব্যাখ্যা

  • N = 156 (জোড়) → -156/2 = -78।
  • ফর্মুলা ব্যবহার করে কোনো লুপ ছাড়া চুৎকি সমাধান।
  • বড় N (যেমন ১০^৯) এর জন্যও এটিই দ্রুত।

বিকল্প: লুপ দিয়ে সমাধান (O(N))

int sum = 0;
for (int i = 1; i <= n; i++) {
    if (i % 2 == 1) sum += i;
    else sum -= i;
}

এটি বুঝতে সহজ কিন্তু বড় N-এ ধীর।

  1. C++-এ ডিফারেন্স খুঁজুন (Find the Difference)

  2. C++-এ লুকানো সংখ্যা (Hidden Number) বের করার প্রোগ্রাম

  3. C++-এ সিরিজ যোগফল: 1 + 2+2 + 3+3+3 + ... + n

  4. C++-এ হারমোনিক সিরিজ যোগফল (আরবিট্রারি প্রথম পদ এবং পার্থক্য)