js算法練習:一頭牛能活6歲,在第三年和第五年會產一頭牛,在第六年天然死去,要求實現輸入年份n,計算出n年後有多少頭牛

1.考慮到每年的牛的數量 影響後一年牛的數量,使用遞歸算法;

2.若擴展提問 n年後對應歲數的牛有幾頭,考慮使用數組存對應歲數的牛的數量;

var array = [1,0,0,0,0,0]
var year = 1
var current = ? 

/**
 * @array  每一歲牛對應數組
 * @year 計年器
 * @current 動態計算的年數
 */
function howmanycows (array,year,current) {
    let newarr = []

    if (current == year) {
        console.log('能夠輸出了',array)
        return array
    }

    //僅計算歲數分佈
    array.forEach((item,i)=>{
        if(i == 0) {
            newarr[0] = 0   //首先上一年一歲的牛,第二年確定已經兩歲了,一歲首先清零
        }else{
            newarr[i] = array[i-1]     //牛每年長一歲,因此數量取上一年前一位索引的value便可
        }
    })

    // 單獨計算一歲的新生牛
    newarr[0] = newarr[2] + newarr[4]
    //單獨減去6歲的牛
    newarr[5] = 0

    return howmanycows(newarr, year+1, current)
}
let finalArr = howmanycows(array,year,current)
let allNums = finalArr.reduce( (a,b) => a+b )

console.log('第'+current+'年'+allNums+'只')
相關文章
相關標籤/搜索