इस समस्या में, हमें दो संख्याएं a और n दी गई हैं। हमारा कार्य C++ में श्रृंखला a^1/1! + a^2/2! + a^3/3! + a^4/4! +… + a^n/n! का योग ज्ञात करने का एक प्रोग्राम बनाना है।
समस्या विवरण - समस्या दिए गए a और n के मानों का उपयोग करके दी गई श्रृंखला का योग ढूंढना है। श्रृंखला एक विशेष श्रृंखला है जिसमें प्रत्येक पद अंतिम पद का a/i से गुणनफल है, i -> 1 से n।
आइए एक उदाहरण लेकर समस्या को समझते हैं
इनपुट
a = 3, n = 4
आउटपुट
15.375
व्याख्या
श्रृंखला का योग है
(3^1)/1! + (3^2)/2! + (3^3)/3! + (3^4)/4! = 3 + 9/2 + 27/6 + 81/24 = 15.375
समाधान दृष्टिकोण
श्रृंखला का योग ढूंढने के लिए, हम प्रत्येक पद को खोजने और उन्हें जोड़कर योग ढूंढने के लिए लूप का उपयोग करेंगे।
श्रृंखला के प्रत्येक तत्व की सीधी गणना में गणना ओवरहेड होता है। इसलिए, हम अगला पद खोजने के लिए अंतिम पद का उपयोग करेंगे।
यहां, iवां पद = (i-1)वां पद * a/i।
इसका उपयोग करके हम कम गणना के साथ पद ढूंढेंगे जो कोड के समग्र प्रदर्शन में सुधार करता है।
हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम
उदाहरण
#include <iostream> using namespace std; float calcSeriesSum(int a, int n){ float sumVal = 0, term = 1; for(float i = 1; i <= n; i++){ term *= a/i; sumVal += term; } return sumVal; } int main(){ int a = 3, n = 4; cout<<"The sum of the series is "<<calcSeriesSum(a, n); return 0; }आउटपुट
The sum of the series is 15.375