【发布时间】:2020-08-17 08:58:05
【问题描述】:
我有一个函数 def recFib,它返回一堆不同的数字,但我希望能够计算它返回“计算 fib(3)”的次数。我试图实现一个计数器,但它只返回 0。有谁知道我会怎么做?
代码:
# fib.py
def loopFib(n):
# pre: n > 0
# returns the nth Fibonacci number
curr = 1
prev = 1
for i in range(n-2):
curr, prev = curr+prev, curr
return curr
def recFib(n):
print("Computing fib" "(",n,")" )
if n<3:
print("Leaving fib" "(",n,")" "returning",1)
return 1
else:
x=recFib(n-1)
y=recFib(n-2)
print("Leaving fib" "(",n,")" "returning",x+y)
return x+y
n = 10
#print(recFib(n))
counter = []
if (recFib(n) == "Computing fib( 3 )"):
counter.append('Three')
count3s = counter.count('Three')
print("Threes", count3s )
#Should return 21 instances of "Computing fib(3)"
输出: (输出的示例)
Computing fib( 10 )
Computing fib( 9 )
Computing fib( 8 )
Computing fib( 7 )
Computing fib( 6 )
Computing fib( 5 )
Computing fib( 4 )
Computing fib( 3 )
Computing fib( 2 )
Leaving fib( 2 )returning 1
Computing fib( 1 )
Leaving fib( 1 )returning 1
Leaving fib( 3 )returning 2
Computing fib( 2 )
Leaving fib( 2 )returning 1
Leaving fib( 4 )returning 3
Computing fib( 3 )
【问题讨论】:
-
你做过调试吗?顺便说一句,变量和函数名称通常应遵循
lower_case_with_underscores样式。
标签: python