递归的迷失

134 阅读1分钟
//递归:在函数内部 直接或者间接的调用函数自己

//递归的条件:
//1-函数自己调用自己
//2-必须有结束递归的条件

//化归思想:将一个问题由难化易,由繁化简,由复杂化简单的过程称为化归,它是转化和归结的简称

//   直接调用自身
//    function test(){
//        console.log('test----');
//        test();
//    }
//
//    test();

    //间接调用自身
//    function test(){
//        console.log('test1');
//        test2();
//    }
//
//    function test2(){
//        console.log('test2');
//        test();
//    }
//
//    test();


    //小明想知道他:太爷爷名字
    //小明问他爸爸
    //爸爸去问爷爷
    //爷爷告诉爸爸
    //爸爸告诉小明


    //求数字前n项的和
    //求前n项
    // f(3);

    //前5项的和  f(5)=5+f(4)
    //前4项的和  f(4)=4+f(3)
    //前3项的和  f(3)=3+f(2)
    //前2项的和  f(2)=2+f(1)
    //前1项的和  f(1)=1

    function f(n){
        if(n==1){
            return 1;
        }
        return n+f(n-1);
    }

    console.log(f(5));
    console.log(f(100));

递归的执行过程

递归的执行过程