15 Python 细胞分裂

病毒分裂,第5分钟开始分裂一个新的病毒,之后每分钟都继续分裂,分裂出来的病毒在第5分钟又会开始分裂新的病毒,病毒不会死亡,初始为1个,问经过n时间之后有多少个。如何做?

前十分钟的病毒总数为:1,1,1,1,2,3,4,5,7,10


请先 登录 后评论

2 个回答

赊狱 - 固体搬运师

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))

请先 登录 后评论
Singu

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))

请先 登录 后评论
  • 2 关注
  • 1 收藏,487 浏览
  • 背着书包流浪 提出于 2021-04-10 12:08

相似问题