用动态分配法解“传染问题”

该博客介绍了一种传染病模型的解题思路,其中患者在第6天才开始传染且每天传染3人,持续5天。博主通过动态分配法计算第N天的患者总数,详细阐述了解题步骤和代码实现,包括保存每天被传染人数并利用公式求解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

某种传染病第一天只有一个患者,前五天为潜伏期,不发作也不会传染人
第6天开始发作,从发作到治愈需要5天时间,期间每天传染3个人
求第N天共有多少患者


解题的思路是这样的:

1、1-5天,0个人被传染,6-10天有15个人(也就是一天3)

2、第11天,被传染的人数应该是从第2天到6天被传染的人数加乘3

3、第N天,被传染的人数是第N-9到N-9+4天人数的和乘3

4、所以我们只要把(1,N-1)每天被传染的人数保存此来就可以通过公式算出第N天人数,然后从1加到N。

 

public static long SickMen(long N)

        {

            long count = 0;

            long[] M = new long[N];

 

            if (N <= 5 && N > 0)

                return 1;

 

 

            for (long i = 5; i < 10; i++)

            {

                if (i < N)

      &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值