农场买了一只小羊,这种羊在第一年是小羊,第二年的年底会生一只小羊,第三年不生小羊,第四年的年底还会再生下一只小羊,第五年就死掉了。
要计算N年时农场里有几只羊。
【凡是碰到“一生二、二生三、三生万物”的问题,无疑用递归算法(顺便和斐波那契数列联系起来)。下面是一个js实现的完整的代码:】
function sheepNum(year){
var num = 1;
for(var i=1; i<=year; i++){
if(i==2){
num += sheepNum(year - 2);
}else if(i==4){
num += sheepNum(year - 4);
}else if(i==5){
num--;
}
}
return num;
} //比如输出第8年农场里羊的数量
console.log(sheepNum(8));
--
阶乘的递归算法 factorial [fæk'tɔrɪəl]
- adj. 因子的,阶乘的
var i,s;
function factorial (i){
if(i > 1){
s = i * factorial(i-1);
}else{
s = i;
}
return s;
}
factorial(3);
--