इस समस्या में, हमें एक संख्या n दी गई है जो श्रृंखला 2 + (2+4) + (2+4+6) + (2+4+6+8) + ... + (2+4+6+8+...+2n) के nवें पद को परिभाषित करती है। हमारा कार्य श्रृंखला का योग निकालने के लिए एक प्रोग्राम बनाना है।
उदाहरण से समझते हैं
इनपुट
n = 3
आउटपुट
व्याख्या - योग = (2) + (2+4) + (2+4+6) = 2 + 6 + 12 = 20
समस्या का एक सरल समाधान नेस्टेड लूप का उपयोग करना है। आंतरिक लूप श्रृंखला के i-वें तत्व को ढूंढता है और फिर सभी तत्वों को योग वेरिएबल में जोड़ता है।
C++ प्रोग्राम उदाहरण (सरल दृष्टिकोण)
#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+4) + (2+4+6) + (2+4+6+8) + ... + (2+4+6+8+...+2n)
श्रृंखला का nवां पद है:
aₙ = (2 + 4 + 6 + 8 + … + 2n) = n² + n
aₙ, n तक की सम संख्याओं का योग है।
श्रृंखला का योग है:
योग = 2 + (2+4) + (2+4+6) + (2+4+6+8) + ... + (2+4+6+8+...+2n) योग = Σ (n² + n) योग = Σ n² + Σ n योग = [n(n+1)(2n+1)/6] + [n(n+1)/2] योग = ½ n(n+1) [(2n+1)/3 + 1] योग = ½ n(n+1) [(2n+4)/3] योग = ⅓ n(n+1)(n+2)
C++ प्रोग्राम उदाहरण (कुशल दृष्टिकोण)
#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