# Sum of the series 2^0 + 2^1 + 2^2 +...+ 2^n in C++

C++Server Side ProgrammingProgramming

#### C in Depth: The Complete C Programming Guide for Beginners

45 Lectures 4.5 hours

#### Practical C++: Learn C++ Basics Step by Step

Most Popular

50 Lectures 4.5 hours

#### Master C and Embedded C Programming- Learn as you go

66 Lectures 5.5 hours

In this problem, we are given a number n which defines the n-th term of the series 2^0, 2^1, 2^2, …, 2^n. Our task is to create a program to find the sum of the series 2^0 + 2^1 + 2^2 +...+ 2^n.

## Let’s take an example to understand the problem,

Input

n=6

Output

Explanation

sum = 2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5 + 2^6
sum = 1 + 2 + 4 + 8 + 16 + 32 + 64 = 127

A simple solution to the problem is by using the loop. Finding the 2^i, for each value from 0 to n and add it to the sum variable.

## Algorithm

Initialize sum = 0
Step 1: Iterate from i = 0 to n. And follow :
Step 1.1: Update sum, sum += 2^i.
Step 2: Print sum.

## Example

Program to illustrate the working of our solution,

Live Demo

#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;
}

## Output

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

This is not the most effective method to solve this problem as it uses a loop that makes its time complexity of the order O(n).

A more effective solution, we will use the mathematical formula for the sum. It is given by

 2^(n+1) - 1

## Example

Program to illustrate the working of our solution,

Live Demo

#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;
}

## Output

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