इस समस्या में, हमें एक संख्या n दी गई है जो श्रृंखला के nवें पद को परिभाषित करती है। हमारा कार्य C++ में श्रृंखला 1*2*3 + 2*3*4+ 3*4*5 + ... + n*(n+1)*(n+2) का योग ज्ञात करने का एक प्रोग्राम बनाना है।
समस्या विवरण - यहां, हम दिए गए श्रृंखला का n पद तक योग ज्ञात करेंगे जो 1*2*3 + 2*3*4+ 3*4*5 + ... + n*(n+1)*(n+2) है। इसे n*(n+1)*(n+2) के योग के रूप में समझा जा सकता है।
आइए एक उदाहरण लेकर समस्या को समझते हैं
इनपुट
n = 5
आउटपुट
420
व्याख्या
1*2*3 + 2*3*4 + 3*4*5 + 4*5*6 + 5*6*7 = 6 + 24 + 60 + 120 + 210 = 420
समाधान दृष्टिकोण
समस्या को हल करने का एक सरल तरीका 1 से n तक लूप का उपयोग करना है और प्रत्येक पुनरावृत्ति में उत्पाद ढूंढकर उसे sumVar में जोड़ना है। लूप समाप्त होने के बाद, sumVar लौटाएं।
एल्गोरिदम
- चरण 1 - i = 1 से n तक लूप।
- चरण 1.1 - sumVar अपडेट करें, sumVar += i*(i+1)*(i+2)
- चरण 2 - sumVar प्रिंट करें।
हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम
उदाहरण
#include <iostream> using namespace std; int calcSeriesSum(int n){ int sumVar = 0; for(int i = 1; i <= n; i++) sumVar = sumVar + ( (i)*(i+1)*(i+2) ); return sumVar; } int main(){ int n = 7; cout<<"The sum of series till "<<n<<" is "<<calcSeriesSum(n); return 0; }आउटपुट
The sum of series till 7 is 1260
यह दृष्टिकोण कुशल नहीं है क्योंकि यह N क्रम की समय जटिलता लेता है।
दूसरा दृष्टिकोण श्रृंखला के योग के लिए गणितीय सूत्र का उपयोग करना है। जैसा कि हमने समस्या विवरण में चर्चा की, श्रृंखला को (n)*(n+1)*(n+2) के योग के रूप में कहा जा सकता है।
इस जानकारी का उपयोग करके आइए योग के लिए एक सामान्य सूत्र बनाएं।
$Sum =\sum_{i=1}^n i(i+1)(i+2)$
$=\sum\{(n^2+n)(n+2)\}$
$=\sum\{n^3 + n^2 + 2n^2 + 2n\}$
$=\sum\{n^3 +3n^2 + 2n\}$
$=\sum_{i=1}^n i^3+3\sum_{i=1}^n i^2+2\sum_{i=1}^n i$
अब, योगों के सामान्य सूत्र का उपयोग करके,
$\sum_{i=1}^n i^3=\frac{(n(n+1))^2}{4}$
$\sum_{i=1}^n i^2=\frac{n(n+1)(2n+1)}{6}$
$\sum_{i=1}^n i=\frac{n(n+1)}{2}$
इन सभी को योग सूत्र में जोड़ने पर,
$Sum=\frac{(n(n+1))^2}{4}+\frac{3n(n+1)(2n+1)}{6}+\frac{2n(n+1)}{2}$
$=\frac{n(n+1)}{2}[\frac{n(n+1)}{2} + \frac{3(2n+1)}{3} + 2]$
$=\frac{n(n+1)}{4}[n^2+ n + 4n + 2 + 4]$
$=\frac{n(n+1)}{4}[n^2+ 5n + 6]$
$=\frac{n(n+1)}{4}[(n+2)(n+3)]$
=$ \frac{1}{4}[ n(n+1)(n+2)(n+3) ]$
nवें पद तक श्रृंखला का योग सूत्र का उपयोग करके गणना की जाती है,
$\frac{1}{4}[ n(n+1)(n+2)(n+3) ]$हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम
उदाहरण
#include <iostream> using namespace std; int calcSeriesSum(int n){ int sumVar = 0; sumVar = ( (n)*(n + 1)*(n + 2)*(n + 3)/4 ); return sumVar; } int main(){ int n = 7; cout<<"The sum of series till "<<n<<" is "<<calcSeriesSum(n); return 0; }आउटपुट
The sum of series till 7 is 1260