Advertisement
karlakmkj

Fibonacci recursion

Jan 6th, 2021
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.21 KB | None | 0 0
  1. #Usual recursive function for calculating fibonacci
  2. def fib(n):
  3.     if n == 1 or n == 2:
  4.         return 1
  5.     else:
  6.         return fib(n - 1) + fib(n - 2)
  7.    
  8. print("fib(5) is", fib(5))
  9. print("fib(10) is", fib(10))
  10.  
  11. '''
  12. Another version to see what is happening with print statements in the conditions.
  13. The execution also climbs down and up the ladder like what happened for factorial
  14. '''
  15. def fib(n):
  16.     if n == 1 or n == 2:
  17.         print("Found fib(", n, "): returning 1!", sep = "")
  18.         return 1
  19.    
  20.     else:
  21.         print("Finding fib(", n, "): fib(", n - 1, ") + fib(", n-2, ")", sep = "")
  22.         result =  fib(n - 1) + fib(n - 2)
  23.         print("Found fib(", n, "): ", result, sep = "") #after number is found for fib(4), it wil start another round for fib(3)
  24.         return result
  25.    
  26. print("fib(5) is", fib(5))
  27.  
  28. '''
  29. Output will show:
  30. Finding fib(5): fib(4) + fib(3)
  31. Finding fib(4): fib(3) + fib(2)
  32. Finding fib(3): fib(2) + fib(1)
  33. Found fib(2): returning 1!
  34. Found fib(1): returning 1!
  35. Found fib(3): 2
  36. Found fib(2): returning 1!
  37. Found fib(4): 3
  38. Finding fib(3): fib(2) + fib(1)
  39. Found fib(2): returning 1!
  40. Found fib(1): returning 1!
  41. Found fib(3): 2
  42. Found fib(5): 5
  43. fib(5) is 5
  44. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement