इस समस्या में, हमें एक पूर्णांक मान N दिया गया है। हमारा कार्य श्रृंखला 1 - 2 + 3 - 4 + 5 - 6 + 7 का n पदों तक योग ज्ञात करना है।
श्रृंखला है 1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9 - 10...
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट : N = 4 आउटपुट : -2
व्याख्या −
1 - 2 + 3 - 4 = -2
समाधान दृष्टिकोण
समस्या को हल करने का एक सरल दृष्टिकोण श्रृंखला का सामान्य पद ढूंढना और फिर n पदों तक योग ढूंढना है। और सूत्र का उपयोग करके योग परिकलित करने से समय O(1) हो जाएगा।
श्रृंखला है,
1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9 - 10...
आइए कुछ मानों के लिए श्रृंखला का योग ढूंढें,
sum(1) = 1
sum(2) = 1 - 2 = -1
sum(3) = 1 - 2 + 3 = 2
sum(4) = 1 - 2 + 3 - 4 = -2
sum(5) = 1 - 2 + 3 - 4 + 5 = 3
sum(6) = 1 - 2 + 3 - 4 + 5 - 6 = -3
sum(7) = 1 - 2 + 3 - 4 + 5 - 6 + 7 = 4
sum(8) = 1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 = -4
यहां से, हम यह निष्कर्ष निकाल सकते हैं कि योग को इस प्रकार तैयार किया जा सकता है,
योग = +(n+1)/2 यदि n विषम है।
योग = -(n)/2 यदि n सम है।
उदाहरण
हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम
#include<iostream> using namespace std; int calcSumNTerms(int n) { if(n%2 == 0) return ((-1)*(n/2)); return ((n+1)/2); } int main() { int n = 156; cout<<"श्रृंखला का n पदों तक योग है "<<calcSumNTerms(n); return 0; } आउटपुट
श्रृंखला का n पदों तक योग है -78