इस समस्या में, हमें एक पूर्णांक मान N दिया जाता है। हमारा कार्य श्रृंखला n^2 - (n-1)^2 तक n पदों का योग ज्ञात करना है। ।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input : N = 3 Output : 6
स्पष्टीकरण -
[12 - (0)2] + [22 - (1)2] + [32 - (2)2] = 1 - 0 + 4 - 1 + 9 - 2 = 9
समाधान दृष्टिकोण
समस्या को हल करने का एक सरल तरीका है श्रृंखला का सामान्य पद ज्ञात करना और फिर n पदों तक का योग ज्ञात करना। और सूत्र का उपयोग करके योग की गणना करने से समय कम होकर O(1) हो जाएगा। इसके अलावा, परिणाम बहुत बड़ा हो सकता है इसलिए मूल्यों के मापांक को खोजने की जरूरत है।
आइए श्रृंखला के nवें पद के लिए सूत्र प्राप्त करें,
$T_{n}\:=\:\mathrm{n^2-(n-1)^2}$
a2 - b2 सूत्र का उपयोग करके हल करने पर,
$T_{n}\:=\:\mathrm{(n+n-1)*(n-n+1)}$
$=\:\mathrm{(2*n-1)*(1)}$
$=\:\mathrm{2*n-1}$
इसका उपयोग करके हम श्रृंखला के n पदों तक का योग ज्ञात कर सकते हैं,
$\mathrm{sum}\:=\:\sum(2*n-1)$
$\mathrm{sum}\:=\:2*\sum{n}\:-\:\sum{1}$
$\mathrm{sum}\:=\:2*(n*(n+1))/2-n$
$\mathrm{sum}\:=\:n*(n+1)-n\:=\:n^2\:+\:n\:-\:n\:=\:n^2$पी>
श्रृंखला का योग n 2 . है जो एक बड़ी संख्या है, इसलिए मॉड लिया जाएगा।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम
#include<iostream> using namespace std; #define mod 1000000007 long long calcSumNTerms(long long n) { return ((n%mod)*(n%mod))%mod; } int main() { long long n = 4325353; cout<<"The sum of series upto n terms is "<<calcSumNTerms(n); return 0; }
आउटपुट
The sum of series upto n terms is 678443653