跳转至

病毒复制

题目描述

某种病毒具有很强的繁殖能力,从病毒粒子出生后的第 5 分钟开始,每分钟可以复制出一个新的 病毒粒子。新出生的病毒粒子从第 5 分钟开始,也可以每分钟复制一个新的病毒粒子。

举例来说,第 1 分钟时有一个病毒粒子,此病毒粒子从第 5 分钟开始复制新的病毒粒子,因此第 5 分钟时的病毒数量为 2 个;第 6 分钟时又复制出新的病毒粒子,因此第 6 分钟的病毒数量为 3 个;以此类推,第 7 分钟时病毒粒子数为 4;第 8 分钟时病毒粒子数为 5;第 9 分钟时,第 5 分钟复制出的病毒粒子开始复制新的病毒粒子,因此第 9 分钟时的病毒总数为 7;第 10 分钟时,第 6分钟复制出的病毒粒子开始复制新的病毒粒子,因此第 10 分钟时的病毒粒子总数为 10。

计算病毒粒子总数,已知第一分钟时出生了一个病毒粒子,假设所有病毒粒子不会自动死亡, 请计算第 N 分钟时的病毒粒子总数。

例如:前 10 分钟病毒粒子的总数分别为 1,1,1,1,2,3,4,5,7,10。

输入描述

输入正整数 N(0<N≤60),表示时间

输出描述

输出第 N 分钟时,病毒粒子的总数

样例输入

6

样例输出

3

代码详解


展开查看

N = int(input())
ls = [1, 1, 1, 1, 2, 3, 4]
if N > 7:
    for i in range(7, N):
        ls.append(ls[i-3] + ls[i-4] + ls[i-5] + ls[i-6])
    print(ls[-1])
else:
    print(ls[N - 1])

运行结果

展开查看
10
10