给定三个整数A , B和N。自定义斐波纳契数列定义为F(x)= F(x – 1)+ F(x + 1) ,其中F(1)= A和F(2)=B。现在的任务是找到第N个项这个系列的
例子:
Input: A = 10, B = 17, N = 3
Output: 7
10, 17, 7, -10, -17, …
Input: A = 50, B = 12, N = 10
Output: -50
方法:可以观察到该序列将像A,B,B – A,-A,-B,A – B,A,B,B – A,…一样继续进行
下面是上述方法的实现:
C++
// C++ implementation of the Custom Fibonacci series
#include
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
输出:
7