资讯专栏INFORMATION COLUMN

js数据结构与算法--递归

go4it / 1287人阅读

摘要:递归,函数自己调用自己返回值,后面的代码不执行之间,把所有能被并且能被整除的数获到,然后累加求和循环递归之间,把所有能被整除的数获到,然后累加求和以内所有偶数积

递归,函数自己调用自己

return

返回值,

后面的代码不执行

        function fn(num){
            console.log(num)
            if(num == 0){
                return;
            }
             fn(num-1)
        }   
        fn(10)

1-100之间,把所有能被3并且能被5整除的数获到,然后累加求和

for循环

        function fn(num) {
            var sum = 0;
            for (var i = 0; i < num; i++) {
                if (i % 3 == 0 && i % 5 == 0) {
                    sum += i;
                }
            }
            return sum;
        }
        console.log(fn(100))

递归

       function fn(num) {
            if (num > 100) {
                return 0;
            }
            if (num % 15 == 0) {
                return num + fn(num + 1)
            }
            return fn(num + 1)
        }
        console.log(fn(1));
        // 1 -> fn(1+1)
        // 2 -> fn(2+1)
        // ...
        //15 -> 15+fn(15+1)
        //      16 -> 15+fn(16+1)
        //      30 -> 15+fn(30+1);
        //          31 -> 15+30+fn(31+1)
        //          ...
        //          15+30+45+60+75+90+fn(100)
        //          15+30+45+60+75+90+fn(101)  => 15+30+45+60+75+90+0

1-10之间,把所有能被2整除的数获到,然后累加求和

        function fn(num) {
            if (num > 10) {
                return 0;
            }
            if (num % 2 == 0) {
                return num + fn(num + 1)
            }
            return fn(num + 1)
        }
        console.log(fn(1));
        // 1 => fn(1+1) => fn(2)
        // 2 => 2+fn(2+1) => 2+fn(3)
        // 3 => 2+fn(3+1) => 2+fn(4)
        // 4 => 2+4+fn(4+1) => 2+4+fn(5)
        //..
        //10 2+4+6+8+10+fn(11)
        //11 2+4+6+8+10+0
1-10以内所有偶数积
        function fn(num){
            if(num<1){
                return 1;
            }
            if(num%2 ==0){
                return num* fn(num-1)
            }
            return fn(num-1)
        }
        var result = fn(10);
        console.log(result);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98931.html

相关文章

  • 数据结构算法:常见排序算法

    摘要:这是一个简单的递归函数,你可以使用它来生成数列中指定序号的数值这个函数的问题在于它的执行效率非常低有太多值在递归调用中被重新计算。 本章内容衔接上一章 数据结构与算法:二分查找 内容提要 两种基本数据结构: 数组 常见操作: 数组降维、数组去重 链表 递归:递归是很多算法都使用的一种编程方法   - 如何将问题分成基线条件和递归条件   - 分而治之策略解决棘手问题 ...

    wuyumin 评论0 收藏0
  • 数据结构算法:常见排序算法

    摘要:这是一个简单的递归函数,你可以使用它来生成数列中指定序号的数值这个函数的问题在于它的执行效率非常低有太多值在递归调用中被重新计算。 本章内容衔接上一章 数据结构与算法:二分查找 内容提要 两种基本数据结构: 数组 常见操作: 数组降维、数组去重 链表 递归:递归是很多算法都使用的一种编程方法   - 如何将问题分成基线条件和递归条件   - 分而治之策略解决棘手问题 ...

    Carson 评论0 收藏0
  • js算法入门(3)--递归

    摘要:在递归过程中,未完成计算的函数将会挂起压入调用堆栈,不然递归结束的时候没办法进行回溯。这就引出了回溯法回溯法就是在达到递归边界前的某层,由于一些事实导致已经不需要前往任何一个子问题递归,就可以直接返回上一层。 1简介 递归在前端开发中应用还是非常广泛的,首先DOM就是树状结构,而这种结构使用递归去遍历是非常合适的。然后就是对象和数组的深复制很多库也是使用递归实现的例如jquery中的e...

    jzman 评论0 收藏0
  • JS数据结构算法_树

    摘要:上一篇数据结构与算法集合字典一递归学习树离不开递归。先序遍历的一种应用是打印一个结构化的文档下面的图描绘了先序遍历方法的访问路径后序遍历后序遍历则是先访问节点的后代节点,再访问节点本身。 上一篇:JS数据结构与算法_集合&字典 一、递归 学习树离不开递归。 1.1 介绍 递归是一种解决问题的方法,它解决问题的各个小部分,直到解决最初的大问题。递归通常涉及函数调用自身。 通俗的解释:年级...

    tabalt 评论0 收藏0
  • JS递归二叉树的遍历

    摘要:貌似大部分语言中的递归都差不多,之所以在标题加是因为搜了下后感觉网上用来描述这概念的不多,简单地说递归就是函数调用自己的过程。 貌似大部分语言中的递归都差不多, 之所以在标题加JS是因为搜了下后感觉网上用js来描述这概念的不多, 简单地说递归就是函数调用自己的过程。下面的栗子可以很直观地展示递归的执行过程: function rec(x){ if(x!==1){ console....

    church 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<