题解 | #统计每个月兔子的总数#
统计每个月兔子的总数
https://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395
// 兔子状态分三种:1个月大兔子、2个月大兔子、大于等于3个月的兔子,最终结果等于这三种兔子数量之和
//当输入月数大于等于3时,每过一个月,动态更新所有种类兔子数量
let num = readline()
if(num < 3){
console.log(1)
}else {
let i=3
let obj={'1':0,'2':0,'3':1}
while(i<=num){
obj['3'] += obj['2'] // 每过一个月原来2月的兔子变成3个月大
obj['2'] = obj['1'] //2月大兔子都变成3月大了,所以清0,但原来1月大的兔子变成了2月大
obj['1'] = obj['3'] //每过一个月大于等于3个月的兔子都会生一只兔子
i++
}
console.log(obj['1']+obj['2']+obj['3'])
}
if(num < 3){
console.log(1)
}else {
let i=3
let obj={'1':0,'2':0,'3':1}
while(i<=num){
obj['3'] += obj['2'] // 每过一个月原来2月的兔子变成3个月大
obj['2'] = obj['1'] //2月大兔子都变成3月大了,所以清0,但原来1月大的兔子变成了2月大
obj['1'] = obj['3'] //每过一个月大于等于3个月的兔子都会生一只兔子
i++
}
console.log(obj['1']+obj['2']+obj['3'])
}