Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ में श्रृंखला 1 + 2 + 2 + 3 + 3 + 3 + .. + n का योग ज्ञात करने का कार्यक्रम

इस समस्या में, हमें एक संख्या n दी गई है जो श्रृंखला के उस nवें पद को दर्शाती है। हमारा काम एक सीरीज 1 + 2 + 2 + 3 +3 + 3 + .. + n C++ में योग खोजने के लिए प्रोग्राम बनाना है। ।

समस्या का विवरण - यहाँ, हम उस श्रेणी का योग ज्ञात करेंगे जिसका nवाँ पद संख्या n के योग का n गुना है। इसका मतलब है कि यह वर्ग संख्याओं की एक श्रृंखला है।

समस्या को समझने के लिए एक उदाहरण लेते हैं

इनपुट

n = 4

आउटपुट

30

स्पष्टीकरण

चौथे पद तक श्रृंखला का योग =1 + 2 + 2 + 3 + 3 + 3 + 4 + 4 + 4 + 4 =30

समाधान दृष्टिकोण

समस्या का सबसे प्रभावी समाधान श्रृंखला के योग के लिए सामान्य सूत्र का उपयोग करना होगा।

लेकिन आइए उस समस्या के सभी संभावित समाधानों पर चर्चा करें जिसके बारे में कोई सोच सकता है।

सरल समाधान n तक श्रंखला की संख्याओं को जोड़ने से समस्या का सीधा संबंध है। इसके लिए दो नेस्टेड लूप की आवश्यकता होगी, एक टर्म का और प्रत्येक टर्म में मानों के लिए आंतरिक लूप।

एल्गोरिदम

आरंभ करें - योगवर =0;

  • चरण 1 - i -> 1 से n के लिए लूप।
    • चरण 1.1 - j के लिए लूप -> 1 से i.
      • चरण 1.1.1 − समवर, समवार+=i;
      • . को अपडेट करें
  • चरण 2 - समवार प्रिंट करें।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम

उदाहरण

#include <iostream>
using namespace std;
int calcSeriesSum(int n){
   int sumVar = 0;
   for(int i = 1; i <= n; i++){
      for(int j = 1; j <= i; j++){
         sumVar += i;
      }
   }
   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 140

यह समाधान सरल है लेकिन प्रभावी नहीं है क्योंकि इसमें दो नेस्टेड लूप हैं जो इसे क्रम की समय जटिलता बनाते हैं O(n2)

एक प्रभावी समाधान इस तथ्य पर आधारित है कि यदि एक संख्या (n) को स्वयं में n बार जोड़ा जाता है। फिर, संख्या को स्वयं से गुणा करके परिणाम प्राप्त किया जा सकता है।

यानी 5+5+5+5+5 =5*5.

इसलिए, हम समस्या को हल करने के लिए एक लूप के बजाय गुणन का उपयोग कर सकते हैं।

एल्गोरिदम

आरंभ करें - समवैल =0;

  • चरण 1 - लूप के लिए i -> 0 से n.
    • चरण 2 - sumVal, sumVal +=(i*i)
    • . को अपडेट करें

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम

उदाहरण

#include <iostream>
using namespace std;
int calcSeriesSum(int n){
   int sumVar = 0;
   for(int i = 1; i <= n; i++){
      sumVar += (i*i);
   }
   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 140

समाधान बेहतर है क्योंकि इसमें केवल एक लूप लगता है और ऑर्डर ओ (एन) की समय जटिलता होती है। लेकिन यह सबसे अच्छा संभव समाधान नहीं है क्योंकि इसे O(1) समय जटिलता में किया जा सकता है।

सबसे प्रभावी समाधान दी गई श्रृंखला के योग के लिए एक सामान्य सूत्र का उपयोग कर रहा है।

श्रृंखला का योग =

1 + 2 + 2 + 3 + 3 + 3 +…. एन.

इसे इस प्रकार बनाया जा सकता है

1 + (2+2) + (3+3+3) + … + (N+N+N..N)
1*1 + 2*2 + 3*3 + … N*N.
12 + 22 + 32 + … N2.

$Sum =\sum_{\square=1}^\square\blacksquare\square^2$

वर्गों के योग का सूत्र n*(n+1)*(2n+1)/6 है। और हम इस सूत्र का उपयोग करके भी योग ज्ञात कर सकते हैं।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम

उदाहरण

#include <iostream>
using namespace std;
int calcSeriesSum(int n){
   int sumVar = 0;
   sumVar = ((n*(n + 1)*( 2 * n + 1))/6 );
      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 140

  1. सी++ में श्रृंखला ए, बी, बी, सी, सी, सी… के एन-वें पद को खोजने का कार्यक्रम

    इस समस्या में, हमें एक संख्या N दी जाती है। हमारा कार्य C++ में श्रृंखला a, b, b, c, c, c… के N-वें पद को खोजने के लिए एक प्रोग्राम बनाना है। समस्या का विवरण श्रृंखला का वां पद ज्ञात करने के लिए - a, b, b, c, c, c, d, d, d, d,....Nशब्द हमें श्रृंखला का सामान्य पद ज्ञात करना होगा। समस्या को समझ

  1. सी++ में श्रृंखला 1, 2, 11, 12, 21… के एन-वें पद को खोजने का कार्यक्रम

    इस समस्या में, हमें एक नंबर N दिया जाता है। हमारा कार्य C++ में श्रृंखला 1, 2, 11, 12, 21… के N-वें पद को खोजने के लिए एक प्रोग्राम बनाना है। समस्या का विवरण श्रृंखला का वां पद ज्ञात करने के लिए - 1, 2, 11, 12, 21, 22, 111, 112, .... Nterms हम श्रृंखला का सामान्य पद ज्ञात करेंगे। समस्या को समझने

  1. C++ अंकगणितीय श्रृंखला के योग के लिए कार्यक्रम

    ए (प्रथम पद), डी (सामान्य अंतर) और एन (एक स्ट्रिंग में मानों की संख्या) के साथ दिया गया है और कार्य श्रृंखला उत्पन्न करना और उनके योग की गणना करना है। अंकगणित श्रृंखला क्या है अंकगणित श्रृंखला सामान्य अंतर वाली संख्याओं का अनुक्रम है जहां एक श्रृंखला का पहला पद ए तय होता है और उनके बीच सामान्य अंतर