इस समस्या में, हमें एक संख्या n दी गई है जो श्रृंखला 2 + (2+4) + (2+4+6) + (2+4+6+8) + ... + (2 के nवें पद को परिभाषित करती है) +4+6+8+...+2एन)। हमारा कार्य श्रृंखला का योग ज्ञात करने के लिए एक प्रोग्राम बनाना है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
n = 3
आउटपुट
स्पष्टीकरण − योग =(2) + (2+4) + (2+4+6) =2 + 6 + 12 =20
समस्या का एक आसान समाधान नेस्टेड लूप का उपयोग करना है। आंतरिक लूप श्रृंखला के ith तत्व को ढूंढता है और फिर सभी तत्वों को योग चर में जोड़ देता है।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,
#include <iostream> using namespace std; int calcSeriesSum(int n) { int sum = 0; for (int i = 1; i<=n; i++) { int even = 2; for (int j = 1; j<=i; j++) { sum += even; even += 2; } } return sum; } int main() { int n = 5; cout<<"Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+"<<(2*n)<<") is "<<calcSeriesSum(n); return 0; }
आउटपुट
Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+10) is 70
समस्या को हल करने का यह सबसे प्रभावी तरीका नहीं है क्योंकि समस्या की समय जटिलता क्रम O(n 2 ) की है )।
समस्या का एक प्रभावी समाधान श्रृंखला के योग के लिए गणितीय सूत्र का उपयोग करना है।
श्रृंखला 2 + (2+4) + (2+4+6) + (2+4+6+8) + ... + (2+4+6+8+...+2n)है पी>
श्रृंखला का वां पद है
ए<उप>एनउप> =(2 + 4 + 6 + 8 + … + 2n) =(n*n) + n
ए<उप>एनउप> n तक की सम संख्याओं का योग है।
श्रृंखला का योग है
sum = 2 + (2+4) + (2+4+6) + (2+4+6+8) + ... + (2+4+6+8+...+2n) sum = ∑ (n2 + n) sum = ∑ n2 + ∑ n sum = [ (n*(n+1)*(2n + 1))/6 ] + [ (n*(n+1))/2 ] sum = ½ (n*(n+1)) [(2n + 1)/3 + 1] sum = ½ (n*(n+1)) [(2n + 1 + 3)/3] sum = ½ (n*(n+1)) [2(n+2)/3] sum = ⅓ n*(n+1)(n+2)
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,
#include <iostream> using namespace std; int calcSeriesSum(int n) { return ((n)*(n+1)*(n+2)/3); } int main() { int n = 5; cout<<"Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+"<<(2*n)<<") is "<<calcSeriesSum(n); return 0; }
आउटपुट
Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+10) is 70