Open In App

Nth term of a Custom Fibonacci series

Improve
Improve
Like Article
Like
Save
Share
Report

Given three integers A, B and N. A Custom Fibonacci series is defined as F(x) = F(x – 1) + F(x + 1) where F(1) = A and F(2) = B. Now the task is to find the Nth term of this series.
Examples: 
 

Input: A = 10, B = 17, N = 3 
Output:
10, 17, 7, -10, -17, …
Input: A = 50, B = 12, N = 10 
Output: -50 
 

 

Approach: It can be observed that the series will go on like A, B, B – A, -A, -B, A – B, A, B, B – A, …
Below is the implementation of the above approach: 
 

C++




// C++ implementation of the Custom Fibonacci series
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the nth term
// of the required sequence
int nth_term(int a, int b, int n)
{
    int z = 0;
    if (n % 6 == 1)
        z = a;
    else if (n % 6 == 2)
        z = b;
    else if (n % 6 == 3)
        z = b - a;
    else if (n % 6 == 4)
        z = -a;
    else if (n % 6 == 5)
        z = -b;
    if (n % 6 == 0)
        z = -(b - a);
    return z;
}
 
// Driver code
int main()
{
    int a = 10, b = 17, n = 3;
 
    cout << nth_term(a, b, n);
 
    return 0;
}


Java




// Java implementation of the
// Custom Fibonacci series
class GFG
{
 
// Function to return the nth term
// of the required sequence
static int nth_term(int a, int b, int n)
{
    int z = 0;
    if (n % 6 == 1)
        z = a;
    else if (n % 6 == 2)
        z = b;
    else if (n % 6 == 3)
        z = b - a;
    else if (n % 6 == 4)
        z = -a;
    else if (n % 6 == 5)
        z = -b;
    if (n % 6 == 0)
        z = -(b - a);
    return z;
}
 
// Driver code
public static void main(String[] args)
{
    int a = 10, b = 17, n = 3;
 
    System.out.println(nth_term(a, b, n));
}
}
 
// This code is contributed by Rajput-Ji


Python 3




# Python 3 implementation of the
# Custom Fibonacci series
 
# Function to return the nth term
# of the required sequence
def nth_term(a, b, n):
    z = 0
    if (n % 6 == 1):
        z = a
    elif (n % 6 == 2):
        z = b
    elif (n % 6 == 3):
        z = b - a
    elif (n % 6 == 4):
        z = -a
    elif (n % 6 == 5):
        z = -b
    if (n % 6 == 0):
        z = -(b - a)
    return z
 
# Driver code
if __name__ == '__main__':
    a = 10
    b = 17
    n = 3
 
    print(nth_term(a, b, n))
     
# This code is contributed by Surendra_Gangwar


C#




// C# implementation of the
// Custom Fibonacci series
using System;
 
class GFG
{
     
// Function to return the nth term
// of the required sequence
static int nth_term(int a, int b, int n)
{
    int z = 0;
    if (n % 6 == 1)
        z = a;
    else if (n % 6 == 2)
        z = b;
    else if (n % 6 == 3)
        z = b - a;
    else if (n % 6 == 4)
        z = -a;
    else if (n % 6 == 5)
        z = -b;
    if (n % 6 == 0)
        z = -(b - a);
    return z;
}
 
// Driver code
static public void Main ()
{
    int a = 10, b = 17, n = 3;
 
    Console.Write(nth_term(a, b, n));
}
}
 
// This code is contributed by ajit.


Javascript




<script>
// javascript implementation of the
// Custom Fibonacci series   
 
// Function to return the nth term
    // of the required sequence
    function nth_term(a , b , n)
    {
        var z = 0;
        if (n % 6 == 1)
            z = a;
        else if (n % 6 == 2)
            z = b;
        else if (n % 6 == 3)
            z = b - a;
        else if (n % 6 == 4)
            z = -a;
        else if (n % 6 == 5)
            z = -b;
        if (n % 6 == 0)
            z = -(b - a);
        return z;
    }
 
    // Driver code
    var a = 10, b = 17, n = 3;
    document.write(nth_term(a, b, n));
 
// This code is contributed by Rajput-Ji
</script>


Output: 

7

 

Time Complexity: O(1)

Auxiliary Space: O(1)



Last Updated : 10 Mar, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads