zoukankan      html  css  js  c++  java
  • js数据结构与算法--递归

    递归,函数自己调用自己

    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);
    

    原文地址:https://segmentfault.com/a/1190000016885214

  • 相关阅读:
    @RestController
    spring-boot入门环境
    spring事务管理
    Spring和hibernate框架整合
    python的for循环及数组
    PreparedStatement防止SQL注入
    python入门
    maven 依赖规则&版本锁定
    使用eclipse创建一个简单的maven项目
    maven常用命令 (1)
  • 原文地址:https://www.cnblogs.com/lalalagq/p/9903692.html
Copyright © 2011-2022 走看看