Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Sum of the series 2^0 + 2^1 + 2^2 +...+ 2^n in C++
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,
#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,
#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
Advertisements
