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