码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-11-02 23:40:07      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:并且   sum   之间   算法   function   递归   bubuko   for循环   console   

递归,函数自己调用自己

return

  1. 返回值,
  2. 后面的代码不执行
        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);

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

标签:并且   sum   之间   算法   function   递归   bubuko   for循环   console   

原文地址:https://www.cnblogs.com/lalalagq/p/9898734.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!