一条有趣的前端面试题(3)

第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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,757评论 0 11
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,394评论 11 349
  • 这是在看完电影《嫌疑人X的献身》后,经不住再看的一部东野奎吾的小说。 深深地震惊了我。两个六年级的小孩,无声息地犯...
    璇酱酱酱阅读 222评论 0 0
  • 十七八岁的年纪最美好,也最相思。 阿珍是班上最小的姑娘,这个从小在梅州长大的小姑娘一直都很乖。成绩好的不得了,一直...
    不夜侯_阅读 248评论 0 0