小学生蓝桥杯Python闯关 | 病毒复制

Posted COCOgsta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小学生蓝桥杯Python闯关 | 病毒复制相关的知识,希望对你有一定的参考价值。

学习Python从娃娃抓起!记录下蓝桥杯Python学习和备考过程中的题目,记录每一个瞬间。

附上汇总贴:小学生蓝桥杯Python闯关 | 汇总_COCOgsta的博客-CSDN博客


【题目描述】

某种病毒具有很强的繁殖能力,从病毒粒子出生后的第 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

以上是关于小学生蓝桥杯Python闯关 | 病毒复制的主要内容,如果未能解决你的问题,请参考以下文章

小学生蓝桥杯Python闯关 | 密码创建

小学生蓝桥杯Python闯关 | 回文日期

小学生蓝桥杯Python闯关 | 纯质数

小学生蓝桥杯Python闯关 | 移动方格

小学生蓝桥杯Python闯关 | 健康判断

小学生蓝桥杯Python闯关 | 数的性质