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

C++ में श्रृंखला 2^0 + 2^1 + 2^2 +...+ 2^n का योग

इस समस्या में, हमें एक संख्या n दी गई है जो श्रृंखला 2^0, 2^1, 2^2, …, 2^n के n-वें पद को परिभाषित करती है। हमारा कार्य एक प्रोग्राम बनाना है जो श्रृंखला 2^0 + 2^1 + 2^2 +...+ 2^n का योग निकाले।

उदाहरण से समझते हैं

इनपुट

n=6

आउटपुट

व्याख्या

योग = 2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5 + 2^6
योग = 1 + 2 + 4 + 8 + 16 + 32 + 64 = 127

समस्या का एक सरल समाधान लूप का उपयोग करके है। 0 से n तक प्रत्येक मान के लिए 2^i ढूंढें और इसे योग वेरिएबल में जोड़ें।

एल्गोरिदम

योग = 0 से आरंभ करें
चरण 1: i = 0 से n तक इटरेट करें। और अनुसरण करें:
चरण 1.1: योग अपडेट करें, योग += 2^i
चरण 2: योग प्रिंट करें।

C++ प्रोग्राम उदाहरण (सरल दृष्टिकोण)

#include <iostream>
#include <math.h>
using namespace std;

int calcSeriesSum(int n) {
    int sum = 0;
    for (int i = 0; i <= n; i++)
        sum += pow(2, i);
    return sum;
}

int main() {
    int n = 11;
    cout << "Sum of the series 2^0 + 2^1 + 2^2 +...+ 2^" << n << " is " << calcSeriesSum(n);
    return 0;
}

आउटपुट

Sum of the series 2^0 + 2^1 + 2^2 +...+ 2^11 is 4095

यह इस समस्या को हल करने का सबसे प्रभावी तरीका नहीं है क्योंकि यह एक लूप का उपयोग करता है जो इसकी समय जटिलता को O(n) क्रम का बनाता है।

अधिक प्रभावी समाधान: गणितीय सूत्र

एक अधिक प्रभावी समाधान, हम योग के लिए गणितीय सूत्र का उपयोग करेंगे। यह द्वारा दिया गया है:

2^(n+1) - 1

C++ प्रोग्राम उदाहरण (कुशल दृष्टिकोण)

#include <iostream>
#include <math.h>
using namespace std;

int calcSeriesSum(int n) {
    return ( (pow(2, (n+1)) - 1) );
}

int main() {
    int n = 11;
    cout << "Sum of the series 2^0 + 2^1 + 2^2 +...+ 2^" << n << " is " << calcSeriesSum(n);
    return 0;
}

आउटपुट

Sum of the series 2^0 + 2^1 + 2^2 +...+ 2^11 is 4095
  1. - C++ में arr[i]*i के योग को अधिकतम करना

    समस्या कथन N पूर्णांकों का एक ऐरे दिया गया है। आपको ऐरे के तत्वों को पुनर्व्यवस्थित करने की अनुमति है। कार्य Σarr[i]*i का अधिकतम मान ढूंढना है, जहां i = 0, 1, 2, .. n-1। यदि इनपुट ऐरे = {4, 1, 6, 2} तो अधिकतम योग 28 होगा यदि हम तत्वों को सॉर्टेड क्रम में पुनर्व्यवस्थित करें: {1, 2, 4, 6} = (1 * 0)

  1. - C++ प्रोग्राम श्रृंखला 1 + 1/2² + 1/3³ + ... + 1/nⁿ का योग ज्ञात करने के लिए

    इस ट्यूटोरियल में, हम दी गई श्रृंखला 1 + 1/2² + 1/3³ + ... + 1/nⁿ का योग ज्ञात करने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए, हमें n का मान दिया जाएगा और हमारा कार्य पहले पद से शुरू करके हर पद को जोड़कर दी गई श्रृंखला का योग ज्ञात करना है। उदाहरण #include <iostream> #include <math.h&g

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

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