সমস্যা বিবরণ
একটি পূর্ণসংখ্যা N দেওয়া আছে। আমাদের কাজ হল সিরিজ 1² - 2² + 3² - 4² + ... n পদ পর্যন্ত যোগফল বের করা।
উদাহরণ
ইনপুট: N = 3 আউটপুট: 6 ব্যাখ্যা: 1 - 4 + 9 = 6
পদ্ধতি ১: লুপ (O(n))
বিজোড় ইনডেক্সে যোগ, জোড় ইনডেক্সে বিয়োগ।
পদ্ধতি ২: ফর্মুলা (O(1)) - সেরা
N জোড় হলে: -N(N+1)/2 N বিজোড় হলে: N(N+1)/2
#include <iostream>
using namespace std;
int sumSeries(int n) {
if(n%2==0) return -n*(n+1)/2;
return n*(n+1)/2;
}
int main() {
cout << sumSeries(5); // 15
return 0;
}
আউটপুট
15