Related Articles
Find the Nth term of the series where each term f[i] = f[i – 1] – f[i – 2]
• Last Updated : 25 Feb, 2021

Given three integers X, Y and N, the task is to find the Nth term of the series f[i] = f[i – 1] – f[i – 2], i > 1 where f = X and f = Y.
Examples:

Input: X = 2, Y = 3, N = 3
Output: -2
The series will be 2 3 1 -2 -3 -1 2 and f = -2
Input: X = 3, Y = 7, N = 8
Output:

Approach: An important observation here is that there will be atmost 6 distinct terms, before the sequence starts repeating itself. So, find the first 6 terms of the series and then the Nth term would be same as the (N % 6)th term.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to return the Nth term``// of the given series``int` `findNthTerm(``int` `x, ``int` `y, ``int` `n)``{``    ``int` `f;` `    ``// First and second term of the series``    ``f = x;``    ``f = y;` `    ``// Find first 6 terms``    ``for` `(``int` `i = 2; i <= 5; i++)``        ``f[i] = f[i - 1] - f[i - 2];` `    ``// Return the Nth term``    ``return` `f[n % 6];``}` `// Driver code``int` `main()``{``    ``int` `x = 2, y = 3, n = 3;``    ``cout << findNthTerm(x, y, n);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `java.io.*;` `class` `GFG``{``    ` `    ``// Function to find the nth term of series``    ``static` `int` `findNthTerm(``int` `x, ``int` `y, ``int` `n)``    ``{    ``        ``int``[] f = ``new` `int``[``6``];``        ` `        ``f[``0``] = x;``        ``f[``1``] = y;``        ` `        ``// Loop to add numbers``        ``for` `(``int` `i = ``2``; i <= ``5``; i++)``            ``f[i] = f[i - ``1``] - f[i - ``2``];``        ` `        ``return` `f[n % ``6``];``    ``}` `    ` `    ``// Driver code``    ``public` `static` `void` `main(String args[])``    ``{``        ``int` `x = ``2``, y = ``3``, n = ``3``;``        ``System.out.println(findNthTerm(x, y, n));``    ``}``}` `// This code is contributed by mohit kumar 29`

## Python3

 `# Python3 implementation of the approach` `# Function to return the Nth term``# of the given series``def` `findNthTerm(x, y, n):` `    ``f ``=` `[``0``] ``*` `6` `    ``# First and second term of``    ``# the series``    ``f[``0``] ``=` `x``    ``f[``1``] ``=` `y` `    ``# Find first 6 terms``    ``for` `i ``in` `range``(``2``, ``6``):``        ``f[i] ``=` `f[i ``-` `1``] ``-` `f[i ``-` `2``]` `    ``# Return the Nth term``    ``return` `f[n ``%` `6``]` `# Driver code``if` `__name__ ``=``=` `"__main__"``:` `    ``x, y, n ``=` `2``, ``3``, ``3``    ``print``(findNthTerm(x, y, n))` `# This code is contributed by``# Rituraj Jain`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG``{``    ` `    ``// Function to find the nth term of series``    ``static` `int` `findNthTerm(``int` `x, ``int` `y, ``int` `n)``    ``{``        ``int``[] f = ``new` `int``;``        ` `        ``f = x;``        ``f = y;``        ` `        ``// Loop to add numbers``        ``for` `(``int` `i = 2; i <= 5; i++)``            ``f[i] = f[i - 1] - f[i - 2];``        ` `        ``return` `f[n % 6];``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``int` `x = 2, y = 3, n = 3;``        ``Console.WriteLine(findNthTerm(x, y, n));``    ``}``}` `// This code is contributed by Ryuga`

## PHP

 ``

## Javascript

 ``
Output:
`-2`

Time Complexity: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up