# Geek-onacci Number

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 **N ^{th} term** of the geekonacci series.

The N

^{th}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 = 4Output:6Explanation:The geekonacci series is 1, 3, 2, 6, 11, 19, ……

Therefore, the 4^{th}geekonacci number is 6.

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

**Approach:** The given problem can be solved by generating the geekonacci series upto **N terms** and print the **N ^{th} 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**i**^{th}element, i.e.**arr[i]**as**(arr[i – 1] + arr[i – 2] + arr[i – 3])**to get the**i**of the geekonacci series.^{th}term - After completing the above steps, print the value of
**arr[N – 1]**as the resultant**N**of the geekonacci series.^{th}number

Below is the implementation of the above approach:

## C++

`#include <bits/stdc++.h>` `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

`<script>` `// Javascript program for the above approach` ` ` `// Function to calculate the` ` ` `// N-th Geek-onacci Number` ` ` `function` `find(A, B, C, N)` ` ` `{` ` ` `// Stores the geekonacci series` ` ` `let arr = ` `new` `Array(N).fill(0);` ` ` `// Store the first three` ` ` `// terms of the series` ` ` `arr[0] = A;` ` ` `arr[1] = B;` ` ` `arr[2] = C;` ` ` `// Iterate over the range [3, N]` ` ` `for` `(let 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` ` ` ` ` `let A = 1, B = 3, C = 2, N = 4;` ` ` `document.write(find(A, B, C, N));` ` ` `</script>` |

**Output:**

6

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