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+'只')