计算 Fibonacci 序列的值
计算 Fibonacci 序列的值(模块:numEx,所在文件名 num_hw.py,Level:★)
利用 Python 实现 Fibonacci 序列值的计算。实现两个函数:
(1)递归版本的 Fibonacci 序列值计算
函数原型:def fibonacci_recursion(number)
参数 number:Fibonacci 序列的第 number 项,number 为大于 0 的整数。
返回值:如果参数合规,则返回 Fibonacci 序列的第 number 项的值;如果参数不合规,
返回错误“Parameter Error.”。 (2)循环版本的 Fibonacci 序列值计算
函数原型:def fibonacci_loop(number)
参数 number:Fibonacci 序列的第 number 项,number 为大于 0 的整数。
返回值:如果参数合规,则返回 Fibonacci 序列的第 number 项的值;如果参数不合规,
返回错误“Parameter Error.”。
问题:
(1)查看 fibonacci_loop(36)与 fibonacci_recursion(36)的运行时间,哪个运行快?
(2)fibonacci_recursion 版本支持的最大输入是多少?最大值如何更改?
代码如下(函数引用)
def fibonacci_recursion(number):
if number <= 0:
return 'Parameter Error.'
if number == 1 :
return 1
if number == 2 :
return 1
return fibonacci_recursion(number - 1) + fibonacci_recursion(number - 2)
def fibonacci_loop(number):
if number <= 0:
return 'Parameter Error.'
if number == 0:
return 'Parameter Error.'
if number == 1:
return 1
i, num1, num2 = 0, 1, 1
while i < number:
res = num1
num1, num2 = num2, num1 + num2 # num1,num2在参与运算的同时也在保存结果
i += 1
return res