美文网首页
一道笔试题

一道笔试题

作者: peerben | 来源:发表于2016-04-19 22:02 被阅读38次

假定甲型H1N1 型流感的潜伏期是5 天,发病期到治愈期为5 天。在潜伏期中没有传染
性,发病后到治愈期间的5 天内具有传染性,治愈后没有传染性。假定若是不采取任何
措施隔离的话,每个发病病人每天能新传染3 人。请写一个函数lCount,计算出从在不
采取隔离措施的前提下某一天起有一人感染上流感并处于潜伏期,到指定天数后的某一
天全部感染上甲型H1N1 型流感(包括感染过已治愈)的人数。

func ICount(let day:Int) -> Int{
    //初始化,最开始只有一个人得H1N1
    var patients = [Patient(day:1)]

    for _ in 1...day {
        
        for patient in patients {
            //对于处于5-10天的病人,做增长
            if patient.day > 5 && patient.day<=10 {
                //每过一天,传染3个人
                let growth = Array(count: 3, repeatedValue: Patient(day: 1))
                patients += growth
            }
        }
        
        //每过一天,所有病人的感染天数 +1
        patients = patients.map({ (patient) -> Patient in
            return Patient(day: patient.day+1)
        })
    }

    return patients.count
}       


for i in 1...12 {
    print("day \(i): \(ICount(i))")
}

相关文章

网友评论

      本文标题:一道笔试题

      本文链接:https://www.haomeiwen.com/subject/pvdzlttx.html