**Problem Statement:** Given a geometric Progression (G.P) sequence with some inputs as:-

- a, first term
- r, common ratio
- n, number of terms

Write a program to find the sum of the geometric Progression Series.

**Examples:**

Example 1:Input:a=1 , r=0.5 , n=3Output:1.75Explanation:The sum of given GP Series is 1.75Example 2:Input:a=3 , r=5 , n=2Output:18Explanation:The sum of the given GP Series is 18

**Solution**

** Disclaimer**:

*Don’t jump directly to the solution, try it out yourself first.*

Let us understand what is Geometric Progression (G.P.)

**Solution 1:**

**Approach**: Just run the iterations one by one and add terms of G.P.

For Eg.

a= 2, r=2, n=4

Initially , sum=0

First Term , a=2 , sum=2

Second Term , ar=4 , sum=6

Third Term , ar^{2}=8, sum=14

Fourth / Last Term , ar^{3}=16 , sum=30

Finally , **sum is 30**

**Code:**

## C++ Code

```
#include <iostream>
using namespace std;
// Function to find sum of G.P. series
float SumofGP(float a, float r, int n)
{
float sum = 0;
for (int i = 0; i < n; i++)
{
sum = sum + a;
a = a * r;
}
return sum;
}
int main()
{
float a = 2; // First Term of G.P.
float r = 1.5; // Common Ration of G.P.
int n = 4; // Number of terms in a G.P.
cout << "Sum of GP Series is "<<SumofGP(a, r, n);
return 0;
}
```

**Output:** Sum of GP Series is 16.25

**Time Complexity: **O(n) since total number of iterations required are number of terms

**Space Complexity: **O(1)

## Java Code

```
import java.util.*;
public class Main {
public static double SumofGP(double a, double r, int n) {
double sum = 0.0;
for (int i = 0; i < n; i++) {
sum += a;
a = a * r;
}
return sum;
}
public static void main(String args[]) {
double a = 2.0; // First term of G.P.
double r = 1.5; // common ratio of G.P.
int n = 4; // Number of terms of G.P.
System.out.println("Sum of GP Series is "+SumofGP(a, r, n));
}
}
```

**Output:** Sum of GP Series is 16.25

**Time Complexity: **O(n) since total number of iterations required are number of terms

**Space Complexity: **O(1)

**Solution 2:**

**Approach**: Just apply the formula of the sum of G.P. Series

For Eg.

a= 2, r=2, n=4

sum=** ****2(2**^{4}**-1)/(2-1) =30**

Finally, the **sum is 30**

**Code:**

## C++ Code

```
#include <iostream>
#include <math.h>
using namespace std;
// Function to find sum of G.P. series
float SumofGP(float a, float r, int n)
{
float sum = a * (pow(r, n) - 1) / (r - 1);
return sum;
}
int main()
{
float a = 2; // First Term of G.P.
float r = 2; // Common Ration of G.P.
int n = 4; // Number of terms in a G.P.
cout << "Sum of GP Series is "<<SumofGP(a, r, n);
return 0;
}
```

**Output:** Sum of GP Series is 30

**Time Complexity: **O(1) since direct formula is applied.

**Space Complexity: **O(1)

## Java Code

```
import java.util.*;
public class Main {
public static float SumofGP(float a, float r, int n) {
float sum = a * ((float) Math.pow(r, n) - 1) / (r - 1);
return sum;
}
public static void main(String args[]) {
float a = 2; // First term of G.P.
float r = 2; // common ratio of G.P.
int n = 4; // Number of terms of G.P.
System.out.println("Sum of GP Series is "+SumofGP(a, r, n));
}
}
```

**Output:** Sum of GP Series is 30.0

**Time Complexity: **O(1) since direct formula is applied.

**Space Complexity: **O(1)

Special thanks toplease check out this articlefor contributing to this article on takeUforward. If you also wish to share your knowledge with the takeUforward fam,Gurmeet Singh