计算并打印fibonacci数列每一项时所需的递归调用次数,数列第一项从1开始。 要求: 1)定义表示调用次数的全局变量count; 2)定义用递归方法求fibonacci数列的fib()函数。
时间: 2023-04-19 19:04:04 浏览: 176
好的,以下是回复:
可以按照以下步骤来实现计算并打印fibonacci数列每一项时所需的递归调用次数:
1. 定义一个全局变量count,用于记录递归调用次数。
2. 定义一个递归函数fib(n),用于计算第n项的fibonacci数列,并在函数中将count加1。
3. 在主函数中,循环计算fibonacci数列的每一项,并调用fib(n)函数,同时打印出每一项的值和递归调用次数。
下面是示例代码:
```python
count = # 定义全局变量count
def fib(n):
global count # 声明count为全局变量
count += 1 # 每次调用函数,count加1
if n == 1 or n == 2:
return 1
else:
return fib(n-1) + fib(n-2)
# 主函数
if __name__ == '__main__':
for i in range(1, 11):
count = # 每次计算前,将count重置为
result = fib(i)
print("第%d项的值为:%d,递归调用次数为:%d" % (i, result, count))
```
运行结果如下:
```
第1项的值为:1,递归调用次数为:1
第2项的值为:1,递归调用次数为:1
第3项的值为:2,递归调用次数为:3
第4项的值为:3,递归调用次数为:5
第5项的值为:5,递归调用次数为:9
第6项的值为:8,递归调用次数为:15
第7项的值为:13,递归调用次数为:25
第8项的值为:21,递归调用次数为:41
第9项的值为:34,递归调用次数为:67
第10项的值为:55,递归调用次数为:109
```
可以看到,每一项的递归调用次数都随着项数的增加而增加。