第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?
拿到这个题目,其实并不难,等差数列而已 a=8+2n ,但是如题要求是用递归方式计算;
我们来看看递归的定义是:是将问题转化为规模缩小的同类问题的子问题,每一个子问题都用一个同样的算法去解决。说得简单就是在运行的过程中调用自己。递归的特点:
1.在函数过程中调用自身。
2.在递归过程中,必须有一个明确的条件判断递归的结束,既递归出口。
3.递归算法简洁但效率低,通常不作为推荐算法。
function getAge(index){
if(index==1){
return 10
}else{
return 2+getAge(index-1)
}
}
alert(getAge(8))
这里当index!==1的时候,返回的是2+ getAge(index-1),一直到index=2的时候返回10,累加之后得到的答案是24