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

श्रृंखला का योग ज्ञात कीजिए 1+22+333+4444+... C++ में n पदों तक

इस समस्या में, हमें एक पूर्णांक मान N दिया जाता है। हमारा कार्य श्रृंखला 1 + 22 + 333 + 4444 + 55555... n पदों तक का योग ज्ञात करना है

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

Input : N = 4
Output : 4800

स्पष्टीकरण -

1 + 22 + 333 + 4444 = 4800

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

समस्या को हल करने का एक सरल तरीका है श्रृंखला का सामान्य पद ज्ञात करना और फिर n पदों तक का योग ज्ञात करना। और सूत्र का उपयोग करके योग की गणना करने से समय कम होकर O(1) हो जाएगा।

श्रृंखला है,

1 + 22 + 333 + 4444 + 55555...

श्रृंखला का योग इस प्रकार लिखा जा सकता है,

$\mathrm{Sum}\:=\:1^*(\frac{10^1-1}{9})\:+\:2^*(\frac{10^1-1}{9}) \:+\:3^*(\frac{10^1-1}{9})\dotsm$

1/9 सामान्य लेने पर योग बन जाता है,

$\mathrm{Sum}\:=\:1/9^*\lbrace(1^*10^1-1)\:+\:(2^*10^2-1)\:+\:(3 ^*10^3-1)\:+\:\dotsm(n^*10^1-n)\rbrace$

$\mathrm{Sum}\:=\:1/9^{*}\lbrace1^*10^1\:+\:2^*10^2\:+\:3^*10^3\:+ \:\dotsm+n^*10^n\:-\:(1+2+3+\dotsm\:n)\rbrace$

$\mathrm{Sum}\:=\:1/9^{*}\lbrace(1^*10^1\:+\:2^*10^2\:+\:3^*10^3\ :+\:\dotsm+n^*10^n)\:-\:1/2(n^*(n+1))\rbrace$

शब्द (1*10 1 + 2*10 2 + 3*10 3 + ... + n * 10 n ) श्रृंखला के सामान्य सूत्र में अंतर करके हल किया जा सकता है,

1 + x + x 2 + x 3 + ... n * x n

तो, शर्तें (1 * 10 1 + 2 * 10 2 + 3 * 10 3 + ... + n * 10 n ) के रूप में फिर से लिखा जा सकता है,

$\frac{n^*(10^{n+2})-(n+1)*(10^{n+1})+10}{81}$

योग सूत्र में वापस लाना,

$\mathrm{Sum}\:=\:1/9^*\lbrace(\frac{n^*(10^{n+2})-(n+1)*(10^{n+1}) +10)}{81}\:-\:1/2(n^*(n+1))\rbrace$

$\mathrm{Sum}\:=\:\frac{1}{1458}*\lbrace2^*(n*(10^{n+2})-(n+1)*(10^{n+1 })+10)-81^*n^*(n+1)\rbrace$

$\mathrm{Sum}\:=\:\frac{1}{1458}*\lbrace2^*(n*(10^{n+2})-(n+1)*(10^{n+1 })+10)-81^*n^*(n+1)\rbrace$

$\mathrm{Sum}\:=\:\frac{1}{1458}*\lbrace(n^*(2^*10^{n+1}-2^*10^{n+1})- 2^*10^{n+1})\:+\:20\:-\:81^*n^2-81n\rbrace$

$\mathrm{Sum}\:=\:\frac{1}{1458}*\lbrace10^{n+1*}(20n-2n-2)-81n^2-81n+20\rbrace$

$\mathrm{Sum}\:=\:\frac{1}{1458}*\lbrace10^{n+1*}(18n-2)-81n^2-81n+20\rbrace$

उदाहरण

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

#include<iostream>
#include<math.h>
using namespace std;
int calcSumNTerms(int n) {
   return ( ( (18*n - 2)*(pow(10, n+1)) - 81*n*n - 81*n + 20 )/1458 );
}
int main() {
   int n = 5;
   cout<<"The sum of series upto n terms is "<<calcSumNTerms(n);
   return 0;
}

आउटपुट

The sum of series upto n terms is 60355

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

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

  1. सी ++ में हार्मोनिक श्रृंखला का योग खोजने का कार्यक्रम

    इस समस्या में, हमें तीन संख्याएँ a, d, और n दिए गए हैं। हमारा काम सी ++ में हार्मोनिक श्रृंखला का योग खोजने के लिए एक प्रोग्राम बनाना है। हार्मोनिक प्रगति एक श्रृंखला है जिसका प्रतिलोम एक समान्तर श्रेणी होगी। अर्थात। यदि एक हार्मोनिक प्रगति के लिए A1, A2, A3.. An, एक अंकगणितीय प्रगति 1/A1, 1/A2, 1/

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

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