母牛第2年会生一头母牛和一头公牛,第3年会生一头母牛,母牛的寿命5年,公牛的寿命4年,假设一开始牧场第一年只有一头母牛,问n年后有几头牛?
function getCattles(n = 1) {
let arr = [];
/**
* 创建一头牛
* @param sex 0母 1公
* @constructor
*/
function Cattle(sex = 0) {
this.age = 1;
this.sex = sex;
this.dead = false;
this.addOneAge = function () {
this.age++;
// 母牛第二年生一头母牛,一头公牛
if (this.sex === 0 && this.age === 2) {
arr.push(new Cattle(0), new Cattle(1))
}
// 母牛第三年生一头母牛
if (this.sex === 0 && this.age === 3) {
arr.push(new Cattle(0))
}
// 公牛寿命4岁
if (this.sex === 1 && this.age === 5) {
this.dead = true
}
// 母牛寿命5岁
if (this.sex === 0 && this.age === 6) {
this.dead = true
}
}
}
let i = 1;
while (i <= n) {
// 第一年默认存在一头母牛
if (i === 1) {
arr.push(new Cattle(0));
} else {
const length = arr.length;
for (let i = 0; i < length; i++) {
arr[i].addOneAge();
}
}
arr = arr.filter(item => !item.dead);
i++;
}
return arr.length;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。