इस समस्या में, हमें एक पूर्णांक मान N दिया जाता है। हमारा कार्य श्रृंखला 1^2 - 2^2 + 3^2 - 4^2 ... n पदों तक का योग ज्ञात करना है ।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input : N = 3 Output : 6
स्पष्टीकरण -
12 - 22 + 32 = 1 - 4 + 9 = 6
समाधान दृष्टिकोण
समस्या को हल करने का एक आसान तरीका लूप का उपयोग करना है। हम इटरेटर i के साथ 1 से n तक लूप करेंगे।
अगर i विषम है, तो जोड़ें (i 2 ) योग के लिए।
अगर मैं सम है, तो घटाएं (i 2 ) राशि के लिए। अंत में, लूप के बाद श्रृंखला का योग लौटाएं।
एल्गोरिदम
आरंभ करें - योग =0.
-
चरण 1 −n तक लूप, i -> 1 से n तक
-
चरण 1.1 - अगर मैं विषम है, तो जोड़ें (i 2 ) योग करने के लिए, अगर (i% 2 ==0) => योग +=i 2
-
चरण 1.2 - अगर मैं सम है, तो जोड़ें (i 2 ) योग करने के लिए, अगर (i% 2 ==0) => योग -=i 2
-
-
चरण 2 - वापसी राशि।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम
#include <iostream>
using namespace std;
int findSumOfSeries(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 == 0)
sum -= (i*i);
else
sum += (i*i);
}
return sum;
}
int main(void) {
int n = 5;
cout<<"The sum of series is "<<findSumOfSeries(n);
} आउटपुट
The sum of series is 15
एक और तरीका श्रृंखला के योग के लिए सूत्रों का उपयोग कर रहा है।
अगर N सम है,
$\mathrm{sum\:=\:1^2\:-\:2^2\:+\:3^2\:-\:4^2\:+\:\dotsm\:+\:( n-1)^2\:-n^2}$
$\mathrm{sum\:=\:(1-2)(1+2)\:+\:(3-4)(3+4)\:+\:\dotsm(n-1-n)( n-1+n)}$
$\mathrm{sum\:=\:(-1)(3)\:+\:(-1)(7)\:+\:(-1)(2n-1)}$
$\mathrm{sum\:=\:(-1)(1+2+3+4+\dotsm\:+(n-1)+n)}$
$\mathrm{sum\:=\:(-1)\:*\:\begin{bmatrix}\frac{n*(n+1)}{2} \end{bmatrix}}$
अगर N विषम है,
$\mathrm{sum\:=\:1^2\:-\:2^2\:+\:3^2\:-\:4^2\:+\:\dotsm\:+\:( n-2)^2\:-(n-1)^2\:+\:n^2}$
$\mathrm{sum\:=\:(1^2\:-\:2^2\:+\:3^2\:-\:4^2\:+\:\dotsm\:+\:(n-2)^2\:-(n-1)^2)\:+\:n^2}$
$\mathrm{sum\:=\:\lbrace(-1)\:*[\frac{n*(n+1)}{2}]\rbrace\:+\:n^2}$
$\mathrm{sum\:=\:(\frac{-n^2\:+\:n\:+\:2n^2}{2})}$
$\mathrm{sum\:=\:(n+n^2)/2\:=\:n^*(n+1)/2}$
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम
#include <iostream>
using namespace std;
int findSumOfSeries(int n) {
int sum = 0;
if(n % 2 == 0){
sum = (-1)*(n*(n+1))/2;
}
else {
sum = (n*(n+1))/2;
}
return sum;
}
int main(void) {
int n = 5;
cout<<"The sum of series is "<<findSumOfSeries(n);
} आउटपुट
The sum of series is 15