这是我目前的代码:
from loguru import logger
def fibonacci(n, s="% s"):
"""
Using recursive method
"""
# logger.debug(f"Finding {n}th Fibonacci number")
logger.debug(s % ("fib(%d)" % (n)))
a = 0
b = 1
if n <= 0:
return a
elif n in (1, 2):
return b
else:
return fibonacci(n - 1, s % ("fib(%d) + %%s" % (n - 1))) + fibonacci(n - 2, s % ("fib(%d) + %%s" % (n - 2)))
我的目标是在日志中显示递归树,例如
fibonacci(5)
:
fib(5)
fib(4) + fib(3)
(fib(3) + fib(2)) + (fib(2) + fib(1))
and so on...
这可能吗?当前代码没有产生预期的输出。
电流输出:
fib(5)
fib(4) + fib(4)
fib(4) + fib(3) + fib(3)
fib(4) + fib(3) + fib(2) + fib(2)
fib(4) + fib(3) + fib(1) + fib(1)
fib(4) + fib(2) + fib(2)
fib(3) + fib(3)
fib(3) + fib(2) + fib(2)
fib(3) + fib(1) + fib(1)
想法是: