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

统计每个月兔子的总数

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

相关推荐

合适才能收到offe...:招聘上写这些态度傲慢的就别继续招呼了,你会发现hr和面试官挺神的,本来求职艰难就可能影响一些心态了,你去这种公司面试的话,整个心态会炸的。
点赞 评论 收藏
分享
在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

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