1. 递归版的调用次数
cnt = 0def fib(n): cnt += 1 return n if n <= 1 else fib(n-1) + fib(n-2)
递归版的实现,共会调用多少次,比如求 fib(8):
- f(2) ⇒ 1+f(1)+f(0) ⇒ 3
- f(3) ⇒ 1 + f(2) + f(1) ⇒ 1+3+1 ⇒ 5
- f(4) ⇒ 1 + f(3) + f(2) ⇒ 1+5+3 ⇒ 9
- f(5) ⇒ 1 + f(4) + f(3) ⇒ 1+9+5 ⇒ 15(规律似乎已经出来了,1+前两项之和)
3,5,9,15,25,41,67