我已经做了一个递归函数来找到斐波纳契数列位置的数字。用户输入一个数字(术语),并通过该函数运行数字以查找数字。
>>> {k: int(v) if isinstance(v, float) else v for k, v in d.items()}
{'key2': 200, 'key4': 2017, 'key1': 'something', 'key3': 'another string'}
如果我输入' 4',有人可以解释这个数字是如何通过我的递归函数运行的吗?
谢谢。答案 0 :(得分:1)
通过if
语句:
fib(0) = 0
fib(1) = 1
fib(2) = fib(2-1) + fib(2-2)
= fib(1) + fib(0)
= 1 + 0
= 1
fib(3) = fib(3-1) + fib(3-2)
= fib(2) + fib(1)
= fib(2-1) + fib(2-2) + 1
= fib(1) + fib(0) + 1
= 1 + 0 + 1
= 2
fib(4) = fib(4-1) + fib(4-2)
= fib(3) + fib(2)
= fib(3-1) + fib(3-2) + fib(2-1) + fib(2-2)
= fib(2) + fib(1) + fib(1) + fib(0)
= fib(2-1) + fib(2-2) + 1 + 1 + 0
= fib(1) + fib(0) + 1 + 1 + 0
= 1 + 0 + 1 + 1 + 0
= 3