# Geek-onacci Number

• Difficulty Level : Medium
• Last Updated : 30 Apr, 2021

Given four integers A, B, C and N, where A, B, C represents the first three numbers of the geekonacci series, the task is to find the Nth term of the geekonacci series.

The Nth term of the geekonacci series is the sum of its previous three terms in the series i.e., sum of (N – 1)th, (N – 2)th, and (N – 3)th geekonacci numbers.

Examples:

Input: A = 1, B = 3, C = 2, N = 4
Output: 6
Explanation: The geekonacci series is 1, 3, 2, 6, 11, 19, ……
Therefore, the 4th geekonacci number is 6.

Input: A = 1, B = 3, C = 2, N = 6
Output: 19

Approach: The given problem can be solved by generating the geekonacci series upto N terms and print the Nth term of the series obtained. Follow the steps below to solve this problem:

• Initialize an array arr[] of size N and initialize arr[0] = A, arr[1] = B, and arr[2] = C.
• Iterate over the range [3, N – 1] and update the value of each every ith element, i.e. arr[i] as (arr[i – 1] + arr[i – 2] + arr[i – 3]) to get the ith term of the geekonacci series.
• After completing the above steps, print the value of arr[N – 1] as the resultant Nth number of the geekonacci series.

Below is the implementation of the above approach:

## C++

 `#include ``using` `namespace` `std;` `// Function to calculate the``// N-th Geek-onacci Number``int` `find(``int` `A, ``int` `B,``                ``int` `C, ``int` `N)``{``  ` `    ``// Stores the geekonacci series``    ``int` `arr[N];` `    ``// Store the first three``    ``// terms of the series``    ``arr[0] = A;``    ``arr[1] = B;``    ``arr[2] = C;` `    ``// Iterate over the range [3, N]``    ``for` `(``int` `i = 3; i < N; i++) {` `        ``// Update the value of arr[i]``        ``// as the sum of previous 3``        ``// terms in the series``        ``arr[i] = arr[i - 1]``                 ``+ arr[i - 2]``                 ``+ arr[i - 3];``    ``}` `    ``// Return the last element``    ``// of arr[] as the N-th term``    ``return` `arr[N - 1];``}` `// Driver Code``int` `main()``{``  ``int` `A = 1, B = 3, C = 2, N = 4;``  ``cout<<(find(A, B, C, N));` `  ``return` `0;``}` `// This code is contributed by mohit kumar 29.`

## Java

 `// Java program for the above approach` `import` `java.io.*;``import` `java.lang.*;``import` `java.util.*;` `class` `GFG {` `    ``// Function to calculate the``    ``// N-th Geek-onacci Number``    ``static` `int` `find(``int` `A, ``int` `B,``                    ``int` `C, ``int` `N)``    ``{``        ``// Stores the geekonacci series``        ``int``[] arr = ``new` `int``[N];` `        ``// Store the first three``        ``// terms of the series``        ``arr[``0``] = A;``        ``arr[``1``] = B;``        ``arr[``2``] = C;` `        ``// Iterate over the range [3, N]``        ``for` `(``int` `i = ``3``; i < N; i++) {` `            ``// Update the value of arr[i]``            ``// as the sum of previous 3``            ``// terms in the series``            ``arr[i] = arr[i - ``1``]``                     ``+ arr[i - ``2``]``                     ``+ arr[i - ``3``];``        ``}` `        ``// Return the last element``        ``// of arr[] as the N-th term``        ``return` `arr[N - ``1``];``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `A = ``1``, B = ``3``, C = ``2``, N = ``4``;``        ``System.out.print(find(A, B, C, N));``    ``}``}`

## Python3

 `# Python3 program for the above approach` `# Function to calculate the``# N-th Geek-onacci Number``def` `find(A, B, C, N) :``  ` `    ``# Stores the geekonacci series``    ``arr ``=` `[``0``] ``*` `N` `    ``# Store the first three``    ``# terms of the series``    ``arr[``0``] ``=` `A``    ``arr[``1``] ``=` `B``    ``arr[``2``] ``=` `C` `    ``# Iterate over the range [3, N]``    ``for` `i ``in` `range``(``3``, N):` `        ``# Update the value of arr[i]``        ``# as the sum of previous 3``        ``# terms in the series``        ``arr[i] ``=` `(arr[i ``-` `1``]``                 ``+` `arr[i ``-` `2``]``                 ``+` `arr[i ``-` `3``])``    ` `    ``# Return the last element``    ``# of arr[] as the N-th term``    ``return` `arr[N ``-` `1``]` `# Driver Code``A ``=` `1``B ``=` `3``C ``=` `2``N ``=` `4` `print``(find(A, B, C, N))` `# This code is contributed by sanjoy_62.`

## C#

 `// C# program for the above approach``using` `System;` `class` `GFG{` `  ``// Function to calculate the``  ``// N-th Geek-onacci Number``  ``static` `int` `find(``int` `A, ``int` `B,``                  ``int` `C, ``int` `N)``  ``{``    ``// Stores the geekonacci series``    ``int``[] arr = ``new` `int``[N];` `    ``// Store the first three``    ``// terms of the series``    ``arr[0] = A;``    ``arr[1] = B;``    ``arr[2] = C;` `    ``// Iterate over the range [3, N]``    ``for` `(``int` `i = 3; i < N; i++) {` `      ``// Update the value of arr[i]``      ``// as the sum of previous 3``      ``// terms in the series``      ``arr[i] = arr[i - 1]``        ``+ arr[i - 2]``        ``+ arr[i - 3];``    ``}` `    ``// Return the last element``    ``// of arr[] as the N-th term``    ``return` `arr[N - 1];``  ``}` `  ``// Driver Code``  ``public` `static` `void` `Main(``string``[] args)``  ``{``    ``int` `A = 1, B = 3, C = 2, N = 4;``    ``Console.Write(find(A, B, C, N));``  ``}``}` `// This code is contributed by code_hunt.`

## Javascript

 ``
Output:
`6`

Time Complexity: O(N)
Auxiliary Space: O(N)

My Personal Notes arrow_drop_up