题解 | #统计每个月兔子的总数#

统计每个月兔子的总数

http://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395

//每个月的成年兔子 = 上个月的成年兔子 + 上个月2月小兔子
//每个月的1月兔子 = 本月成年兔子
//每个月的2月兔子 = 上个月的1月兔子
//定义3个数组,rabbitParent、rabbitChild1、rabbitChild2分别代表成年兔子、1月兔子、2月兔子
// rabbitParent[i] = rabbitParent[i-1] + rabbitChild2[i-1]
// rabbitChild1[i] = rabbitParent[i]
// rabbitChild2[i] = rabbitChild1[i-1]
// 代入化简
// rabbitParent[i] = rabbitParent[i-1] + rabbitParent[i-2]
// rabbitChild1[i] = rabbitParent[i]
// rabbitChild2[i] = rabbitChild1[i-1] = rabbitParent[i-1]

function getRabbitNum(month){
    let rabbitParent=[0,0,1];
    let rabbitChild1=[1,0,1];
    let rabbitChild2=[0,1,0];
    
    for(let i = 3;i < month;i++){
      rabbitParent.push(rabbitParent[i-1] + rabbitParent[i-2])
      rabbitChild1.push(rabbitParent[i])
      rabbitChild2.push(rabbitParent[i-1])
    }
    
    let result = (rabbitParent[month-1] || 0) + (rabbitChild1[month-1] || 0) +(rabbitChild2[month-1] || 0)
    return result;
}

let line
while(line=parseInt(readline())){
    console.log(getRabbitNum(line))
}
全部评论

相关推荐

挥毫自在:想白嫖你呢
点赞 评论 收藏
分享
09-22 09:42
门头沟学院 Java
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务