Find the Sum of the series 1, 2, 3, 6, 9, 18, 27, 54, … till N terms

Given a number N, the task is to find the sum of the below series till N terms.
Examples:
Input: N = 8
Output: 201
1 + 2 + 3 + 6 + 9 + 18 + 27 + 54 + 81 = 201
Input: N = 12
Output: 1821
1 + 2 + 3 + 6 + 9 + 18 + 27 + 54 + 81 + 162 + 243 + 486 + 729 = 1821
Approach: From the given series, find the formula for Nth term:
1st term = 1
2nd term = 2 = 2 * 1
3rd term = 3 = 3/2 * 2
4th term = 6 = 2 * 3
5th term = 9 = 3/2 * 6
6th term = 18 = 2 * 9
.
.
Nth term = [2 * (N-1)th term], if N is even
[3/2 * (N-1)th term], if N is odd
Therefore:
Nth term of the series
Then iterate over numbers in the range [1, N] to find all the terms using the above formula and compute their sum.
Approach: By observing the pattern in the given series, the next numbers of the series are alternatively multiplied by 2 and 3/2.
Below is the implementation of the above approach:
C++
// C++ program for the above series#include <iostream>using namespace std;// Function to find the sum of seriesvoid printSeriesSum(int N){ double sum = 0; int a = 1; int cnt = 0; // Flag to find the multiplicating // factor.. i.e, by 2 or 3/2 bool flag = true; // First term sum += a; while (cnt < N) { int nextElement; // If flag is true, multiply by 2 if (flag) { nextElement = a * 2; sum += nextElement; flag = !flag; } // If flag is false, multiply by 3/2 else { nextElement = a * 3 / 2; sum += nextElement; flag = !flag; } // Update the previous element // to nextElement a = nextElement; cnt++; } // Print the sum cout << sum << endl;}// Driver Codeint main(){ int N = 8; printSeriesSum(N); return 0;} |
Java
// Java program for the above seriesclass GFG { // Function to find the sum of series static void printSeriesSum(int N) { double sum = 0; int a = 1; int cnt = 0; // Flag to find the multiplicating // factor.. i.e, by 2 or 3/2 boolean flag = true; // First term sum += a; while (cnt < N) { int nextElement; // If flag is true, multiply by 2 if (flag == true) { nextElement = a * 2; sum += nextElement; flag = !flag; } // If flag is false, multiply by 3/2 else { nextElement = a * 3 / 2; sum += nextElement; flag = !flag; } // Update the previous element // to nextElement a = nextElement; cnt++; } // Print the sum System.out.println(sum); } // Driver Code public static void main (String[] args) { int N = 8; printSeriesSum(N); }}// This code is contributed by AnkitRai01 |
Python3
# Python3 program for the above series# Function to find the sum of seriesdef printSeriesSum(N) : sum = 0; a = 1; cnt = 0; # Flag to find the multiplicating # factor.. i.e, by 2 or 3/2 flag = True; # First term sum += a; while (cnt < N) : nextElement = None; # If flag is true, multiply by 2 if (flag) : nextElement = a * 2; sum += nextElement; flag = not flag; # If flag is false, multiply by 3/2 else : nextElement = a * (3 / 2); sum += nextElement; flag = not flag; # Update the previous element # to nextElement a = nextElement; cnt += 1 # Print the sum print(sum);# Driver Codeif __name__ == "__main__" : N = 8; printSeriesSum(N); # This code is contributed by AnkitRai01 |
C#
// C# program for the above seriesusing System;class GFG { // Function to find the sum of series static void printSeriesSum(int N) { double sum = 0; int a = 1; int cnt = 0; // Flag to find the multiplicating // factor.. i.e, by 2 or 3/2 bool flag = true; // First term sum += a; while (cnt < N) { int nextElement; // If flag is true, multiply by 2 if (flag == true) { nextElement = a * 2; sum += nextElement; flag = !flag; } // If flag is false, multiply by 3/2 else { nextElement = a * 3 / 2; sum += nextElement; flag = !flag; } // Update the previous element // to nextElement a = nextElement; cnt++; } // Print the sum Console.WriteLine(sum); } // Driver Code public static void Main (string[] args) { int N = 8; printSeriesSum(N); } } // This code is contributed by AnkitRai01 |
Javascript
<script>// javascript program for the above series// Function to find the sum of seriesfunction printSeriesSum( N){ let sum = 0; let a = 1; let cnt = 0; // Flag to find the multiplicating // factor.. i.e, by 2 or 3/2 let flag = true; // First term sum += a; while (cnt < N) { let nextElement; // If flag is true, multiply by 2 if (flag) { nextElement = a * 2; sum += nextElement; flag = !flag; } // If flag is false, multiply by 3/2 else { nextElement = a * 3 / 2; sum += nextElement; flag = !flag; } // Update the previous element // to nextElement a = nextElement; cnt++; } // Print the sum document.write(sum );}// Driver Code let N = 8; printSeriesSum(N); // This code is contributed by todaysgaurav </script> |
201
Time Complexity: O(N)
Auxiliary Space: O(1), since no extra space has been taken.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!




