Day4--js--递归各种大法渡难关

一1求最大公约数

  递归

function com(m,n){
    var r = 0;
    r = m%n;

    if(r == 0){
        return n;
    }else{
        m = n;
        n = r;
        return com(m,n);
    }
}


console.log(com(8,12))

2,最简单的思路

function fc(a,b){
        var result = 1;
        for(var i = 1; i <= a && i <= b; i++ ){
            if(a%i == 0 && b%i == 0 ){
                result = i;
            }
        }
        return result;
    }

二.斐波那契数列

  

1 1 2 3 5 8  13  21  34......


function fibonacci(n){

    if(n<=2){
        return 1;
    }

    return fibonacci(n-1)+fibonacci(n-2);
}

console.log(fibonacci(2))

三.100以内能被3,7整除

  

 1 function fn(n){
 2 
 3     if(n == 100){
 4         return;
 5     }
 6 
 7     if(n%3 == 0 || n % 7 == 0){
 8         console.log(n);
 9     }
10 
11 
12     fn(n+1);
13 }
14 
15 fn(1)

四,打印100所有的奇数

  

function fn(n){
        if(n == 100){
            return;
        }

        if(n%2 != 0){
            console.log(n);
        }

    fn(n+1);
    }

fn(1);

五.1加到100

function sum(n){

    if(n == 100){
        return 100;
    }
         
    return n+sum(n+1);
}

六.1!+2!+3!+.....20!求和

 
 
function fn(n){
    if(n == 1){
        return 1;
    }

    var result = 1;
    for(var i=1;i<=n;i++){
        result*=i;
    }



    return result+fn(n-1);
}
 
  
 
 

七.  计算100以内偶数之和

 1 var sum =0
 2 function fn(n){
 3     if(n<2){
 4         console.log(sum)
 5         return 
 6     }
 7     if(n%2 == 0){
 8         sum+=n
 9     }
10     fn(n-1)
11 }
12 fn(100)
 
 
function fn(n){
    if(n <= 1){
        return 0; 
    }

    if(n%2 == 0){
        return n+fn(n-2);
    }else{
        
        return fn(n-1);
    }
}

console.log(fn(99))
 
  
 
 

                                                                                                                                                  未完待续..........

猜你喜欢

转载自www.cnblogs.com/moonzwt/p/9457508.html