Program to find Fibonacci series results up to nth term in Python


Suppose we have a number n. We have to find the sum of first n Fibonacci terms (Fibonacci sequence up to n terms). If the answer is too large then return result modulo 10^8 + 7.

So, if the input is like n = 8, then the output will be 33 as first few Fibonacci terms are 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 = 33

To solve this, we will follow these steps −

  • m := 10^8+7
  • memo := a new map
  • Define a function solve() . This will take n, m
  • if n is in memo, then
    • return memo[n]
  • memo[n] := n when n < 2 otherwise (solve(n-1, m) +solve(n-2, m)) mod m
  • return memo[n]
  • From the main method get the list of memo values and take their sum.

Example

Let us see the following implementation to get better understanding −

m = 10**8+7
memo = {}
def solve(n, m):
   if n in memo:
      return memo[n]
   memo[n] = n if n < 2 else (solve(n-1, m)+solve(n-2, m)) % m
   return memo[n]

n = 8
solve(n, m)
print(sum(list(memo.values())[:n]))

Input

8

Output

33

Updated on: 12-Oct-2021

335 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements