Program to print the series 1, 3, 4, 8, 15, 27, 50… till N terms
Last Updated :
19 Aug, 2022
Given a number N, the task is to print the first N terms of the following series:
1, 3, 4, 8, 15, 27, 50…
Examples:
Input: N = 7
Output: 1, 3, 4, 8, 15, 27, 50
Input: N = 3
Output: 1, 3, 4
Approach: From the given series we can find the formula for Nth term:
1st term = 1, 2nd term = 3, 3rd term = 4
4th term = 1st term + 2nd term + 3rd term
5th term = 2nd term + 3rd term + 4th term
6th term = 3rd term + 4th term + 5th term
.
.
so on
Therefore, the idea is to keep track of the last three terms of the series and find the consecutive terms of the series.
Below is the implementation of above approach:
C++
#include "bits/stdc++.h"
using namespace std;
void printSeries( int n, int a,
int b, int c)
{
int d;
if (n == 1) {
cout << a << " " ;
return ;
}
if (n == 2) {
cout << a << " " << b << " " ;
return ;
}
cout << a << " " << b
<< " " << c << " " ;
for ( int i = 4; i <= n; i++) {
d = a + b + c;
cout << d << " " ;
a = b;
b = c;
c = d;
}
}
int main()
{
int N = 7, a = 1, b = 3;
int c = 4;
printSeries(N, a, b, c);
return 0;
}
|
Java
import java.util.*;
class GFG{
static void printSeries( int n, int a,
int b, int c)
{
int d;
if (n == 1 )
{
System.out.print(a + " " );
return ;
}
if (n == 2 )
{
System.out.print(a + " " + b + " " );
return ;
}
System.out.print(a + " " +
b + " " +
c + " " );
for ( int i = 4 ; i <= n; i++)
{
d = a + b + c;
System.out.print(d + " " );
a = b;
b = c;
c = d;
}
}
public static void main(String[] args)
{
int N = 7 , a = 1 , b = 3 ;
int c = 4 ;
printSeries(N, a, b, c);
}
}
|
Python3
def printSeries(n, a, b, c):
if (n = = 1 ):
print (a, end = " " );
return ;
if (n = = 2 ):
print (a, b, end = " " );
return ;
print (a, b, c, end = " " );
for i in range ( 4 , n + 1 ):
d = a + b + c;
print (d, end = " " );
a = b;
b = c;
c = d;
N = 7 ; a = 1 ; b = 3 ;
c = 4 ;
printSeries(N, a, b, c);
|
C#
using System;
class GFG{
static void printSeries( int n, int a,
int b, int c)
{
int d;
if (n == 1)
{
Console.Write(a + " " );
return ;
}
if (n == 2)
{
Console.Write(a + " " +
b + " " );
return ;
}
Console.Write(a + " " +
b + " " +
c + " " );
for ( int i = 4; i <= n; i++)
{
d = a + b + c;
Console.Write(d + " " );
a = b;
b = c;
c = d;
}
}
public static void Main()
{
int N = 7, a = 1, b = 3;
int c = 4;
printSeries(N, a, b, c);
}
}
|
Javascript
<script>
function printSeries( n, a,
b, c)
{
let d;
if (n == 1) {
document.write( a + " " );
return ;
}
if (n == 2) {
document.write( a + " " + b + " " );
return ;
}
document.write( a + " " + b
+ " " + c + " " );
for (let i = 4; i <= n; i++) {
d = a + b + c;
document.write( d + " " );
a = b;
b = c;
c = d;
}
}
let N = 7, a = 1, b = 3;
let c = 4;
printSeries(N, a, b, c);
</script>
|
Time complexity: O(n) because using a for loop
Auxiliary Space: O(1), since no extra space has been taken.
Share your thoughts in the comments
Please Login to comment...