Nth Element Of Modified Fibonacci Series
You have been given two integers ‘X’ and ‘Y’ which are the first two integers of a series and an integer ‘N’. You have to find the Nth number of the series using the Fibonacci rule given by f(x) = f(x - 1) + f(x - 2).
The answer may be very large, return it after modulus 10 ^ 9 + 7.
The series is 1-based indexed.
The first line contains an integer T denoting the number of test cases. Then each test case follows. The first line of each test case contains three space-separated integers ‘X’, 'Y', and ‘N’, respectively where ‘X’ and ‘Y’ represent the first and second element of the series while N represents which number of the sequence we have to find out.
For each test case, print a single line containing a single integer denoting the Nth number of the series. The output of each test case will be printed in separate lines.
You are not required to print the expected output; it has already been taken care of. Just implement the given function.
1 <= T <= 100 1 <= N <= 10 ^ 18 -10 ^ 6 <= X, Y <= 10 ^ 6 Time limit: 1 sec.
Let’s define a dp array of size N, where dp[i] represents the i-th Fibonacci number. For each block, let’s compute the answer in a top-down fashion, starting with the leftmost blocks (dp and dp). We will iterate through the array for i = 2 to N and then we can fill the array in a top-down manner like:
dp[i] = dp[i-1] + dp[i-2].
Since, during this method, we only need the previous two states, we can store the last two states in two variables instead of using a whole array.
Here is the algorithm:
- Initialise variable sum = 0 that stores the sum of the previous two values.
- Now, run a loop from i = 2 to N-1 and for each index update value of sum = X + Y and X = Y, Y = sum.
- Finally, return the sum, which is the required Nth element.