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

统计每个月兔子的总数

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))
}
全部评论

相关推荐

阿武同学:基本信息保留前面三行,其他的可以全部删掉,邮箱最重要的你没写,主修课程精简到8个以内,实习里面2/3/4都是水内容的,非要写的话建议两到三句话,项目经历排版优化下,自我评价缩到三行
点赞 评论 收藏
分享
迷茫的大四🐶:好一个误闯天家,我也想闯一闯
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

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