def fib(n):
if n <5:
return 1
return fib(n - 1) + fib(n - 4)
print(fib(0))
print(fib(5))
print(fib(10))
print(fib(15))
病毒分裂,第5分钟开始分裂一个新的病毒,之后每分钟都继续分裂,分裂出来的病毒在第5分钟又会开始分裂新的病毒,病毒不会死亡,初始为1个,问经过n时间之后有多少个。如何做?
前十分钟的病毒总数为:1,1,1,1,2,3,4,5,7,10
def 细胞分裂(time):
# 不足 5 分钟,直接返回 1
if time < 5:
return 1
# 定义一个斐波那契函数
def fib(n):
if n == 0:
return 1
if n == 1:
return 1
return fib(n - 1) + fib(n - 2)
# 求分裂的轮数,并计算总次数 +1 的 fib 值
return fib((time // 5) + 1)
print(细胞分裂(0))
print(细胞分裂(5))
print(细胞分裂(10))
print(细胞分裂(15))