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

श्रृंखला का योग 1 + (1+3) + (1+3+5) + (1+3+5+7) + ...... + (1+3+5+7+...+ (2n-1)) C++ . में

इस समस्या में, हमें एक संख्या n दी गई है। हमारा कार्य श्रृंखला का योग ज्ञात करने के लिए एक प्रोग्राम बनाना है 1 + (1+3) + (1+3+5) + (1+3+5+7) + …… + (1+3+ 5+7+…+(2एन-1))।

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

इनपुट: एन =5

आउटपुट: 55

तो, प्रश्न के अनुसार मान लीजिए कि कोई उपयोगकर्ता हमें 'n' नंबर देता है और हमें 1 + (1+3) + (1+3+5) + (1+3+5+7) श्रृंखला जोड़नी होगी + …… + (1+3+5+7+…+(2n-1)).

आइए पहले इस श्रृंखला के अर्थ को बेहतर ढंग से समझते हैं।

हम n=1 लेते हैं, फिर श्रृंखला 1 बन जाती है।

हम n=2 लेते हैं, फिर श्रृंखला 1+ (1+3) बन जाती है क्योंकि अंतिम पद 2n-1 के मान की गणना 1 से 2 गुणा 2, जो कि 3 है, के रूप में की जा सकती है।

n . का मान
2n-1
श्रृंखला बन जाती है
1
1
1
2
3
1+ (1+3)
3
5
1+ (1+3) + (1+3+5)
4
7
1+ (1+3) + (1+3+5) + (1+3+5+7)

समस्या के समाधान की बात करें तो इसे दो तरह से हल किया जा सकता है। एक गणितीय होगा जहां कुल योग की अभिव्यक्ति प्राप्त की जा सकती है और इसलिए किसी लूप की आवश्यकता नहीं होती है। दूसरा कोड में दो लूप लगाना होगा।

लूप्स का उपयोग करके सीधा दृष्टिकोण

जैसा कि देखा जा सकता है कि श्रृंखला का पद 1 + (1+3) + (1+3+5) + (1+3+5+7) + …… + (1+3+5+7+… +(2n-1)) एक श्रृंखला ही है। इसलिए हम नेस्टेड लूप का उपयोग करेंगे। बाहरी लूप दूसरे कार्यकाल की गणना करेगा। जबकि आंतरिक लूप का उपयोग शब्द की गणना के लिए ही किया जाएगा।

उदाहरण

#include<stdio.h>

int calcSum(int n){
   int sum = 0;
   for (int i = 1; i <= n; i++) {
      // the first value of the term is always 1
      int value = 1;
      for (int j = 1; j <= i; j++) {
         sum += value;
         // next term
         value += 2;
      }
   }
   return sum;
}

int main(){
   int n = 35;
   printf("The sum of the series upto %d is %d ", n , calcSum(n));

}

आउटपुट

The sum of the series upto 35 is 14910

कार्यक्रम का कार्य:

  • उपयोगकर्ता n के मान में प्रवेश करता है। मान लें, 2.
  • “sum” नाम के वेरिएबल को 0 के रूप में प्रारंभिक मान के साथ घोषित किया गया है
  • जब i=1, शर्त के लिए i<=n सत्य है और इसलिए लूप काम करेगा
    • वेरिएबल "ft" का मान 1 है।
    • j का पहला मान 1 है। शर्त सही है क्योंकि j का मान i के मान के बराबर है, जो कि 1 है। इसलिए j लूप काम करता है
    • फीट का मान योग में जोड़ा जाता है। इसलिए योग 0+1 बराबर 1 हो जाता है।
    • फ़ुट का मान संशोधित किया गया है और 2 से बढ़ा दिया गया है, इसलिए इसका नया मान 1+2 =3 है
    • j का मान 1 से बढ़कर 2 हो जाता है।
    • लेकिन अब लूप के लिए अंदर की स्थिति झूठी है, जैसा कि अभी j>i है। इसलिए j लूप निकल जाता है।
  • अब i का मान 1 से बढ़ जाता है और 2 हो जाता है, इसलिए i=2 और स्थिति सत्य है i<=n, इसलिए लूप में प्रवेश करता है
    • चर "ft" का मान फिर से 1 के रूप में परिभाषित किया गया है
    • जब j का मान 1 है, तो लूप j
    • फीट का मान योग में जोड़ा जाता है। योग का मान पहले से ही 1 है। तो योग का नया मान 1+1 =2
    • . है
    • फ़ुट का मान संशोधित और 2 बढ़ा दिया जाता है, इसलिए फ़ुट का नया मान 1+2 =3 हो जाता है।
    • j का मान 1 से बढ़ता है और 2 हो जाता है। लूप के लिए स्थिति सही है क्योंकि j बराबर है।
    • फीट का मान योग में जोड़ा जाता है। योग का मूल्य पहले से ही 2 है। तो योग का नया मान 2+3 =5
    • . है
    • फ़ुट का मान संशोधित और 2 बढ़ा दिया जाता है, इसलिए फ़ुट का नया मान 3+2 =5 हो जाता है।
    • लूप मौजूद है
  • अब i का मान 1 से बढ़ जाता है और 3 हो जाता है, इसलिए i=3 और स्थिति गलत है i<=n, इसलिए लूप से बाहर निकल जाता है।
  • संदेश और योग का मूल्य स्क्रीन पर प्रिंट करता है

गणितीय हल:

प्रश्न का गणितीय हल ढूंढ़ने और फिर कोड लिखने से हमारा कोड काफी हद तक सरल हो जाएगा।

मान लीजिए सामान्य पद Tn श्रृंखला के,

आगे बढ़ने से पहले, हमें पता होना चाहिए कि श्रृंखला 1+3+5+7+9…..(2n-1) का योग n 2, होगा और श्रृंखला

1 2 +2 2 +3 2 +4 2 ….n 2 का योग होगा i 2

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

उदाहरण

#include<stdio.h>

int calcSum(int n){
   // required sum
   return (( (n) * (n + 1) * (2*n + 1 ) )/6 ) ;
}

int main(){
int n = 35;
   printf("The sum of the series upto %d is %d ", n , calcSum(n));

}

आउटपुट

The sum of the series upto 35 is 14910

उपरोक्त कोड की कार्यप्रणाली:

उदाहरण के लिए, मान लें कि उपयोगकर्ता ने n के मान को 2 के रूप में दर्ज किया है, फिर 2n-1 का मान 3 है और श्रृंखला 1+ (1+3) बन जाती है।

लेकिन आइए हम कोड के माध्यम से राशि को समझें और प्राप्त करें।

  • फ़ंक्शन योग () को मान 2 के साथ कहा जाता है
  • फ़ंक्शन 5 के मान की गणना करता है और इसे मुख्य फ़ंक्शन पर लौटाता है।
  • उत्तर वाला संदेश स्क्रीन पर छपा होता है।

  1. सी ++ प्रोग्राम 23+ 45+ 75+….. एन शर्तों तक श्रृंखला का योग खोजने के लिए

    इस ट्यूटोरियल में, हम दी गई श्रृंखला 23+ 45+ 75+….. तक N शब्दों का योग ज्ञात करने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए, हमें N का मान दिया जाएगा और हमारा कार्य दी गई श्रृंखला का योग ज्ञात करने के लिए पहले से शुरू होने वाले प्रत्येक पद को जोड़ना है। इसे हल करने के बाद, हमें श्रृंखला के योग

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

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

  1. C++ में कॉन्स्टेबल कीवर्ड क्या है?

    हम एक चर को स्थिर घोषित करने के लिए const qualifier का उपयोग करते हैं। इसका मतलब है कि एक बार वेरिएबल को इनिशियलाइज़ करने के बाद हम वैल्यू को नहीं बदल सकते। कॉन्स्ट का इस्तेमाल करने से बहुत बड़ा फायदा होता है। उदाहरण के लिए, यदि आपके पास PI के मान जैसा स्थिर मान है, तो आप उस मान को संशोधित करने के ल