1

母牛第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;
    }

任天镗
12 声望2 粉丝