इस समस्या में, हमें एक पूर्णांक मान N दिया गया है। हमारा कार्य श्रृंखला 1 + 22 + 333 + 4444 + 55555... का n पदों तक योग ज्ञात करना है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट : N = 4 आउटपुट : 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*101 + 2*102 + 3*103 + ... + n*10n) को श्रृंखला के सामान्य सूत्र को अवकलित करके हल किया जा सकता है,
1 + x + x2 + x3 + ... n*xn
तो, पद (1*101 + 2*102 + 3*103 + ... + n*10n) को इस प्रकार लिखा जा सकता है,
$\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<<"श्रृंखला का n पदों तक योग है "<<calcSumNTerms(n); return 0; } आउटपुट
श्रृंखला का n पदों तक योग है 60355