美文网首页
迭代递归

迭代递归

作者: 思不凡语不浮 | 来源:发表于2018-11-07 17:00 被阅读0次

迭代

迭代法也就是辗转法

规律:就是可以不断地用旧的值得到新的值,直到我们想要的得到的结果。

遇到了迭代的问题怎么解决

  1. 找到迭代的变量(旧的值)

  2. 确定迭代的关系

  3. 知道想要的结果是什么(结束循环的条件)

(1) 就是知道最终结果

(2) 循环的次数


<script>

    /*

    * 1.接受用户输入的俩个数

    * 2.一个函数的到最大公约数

    * 3.打印这个最大公约数*/

    varnum1 = Number(prompt("请输入一个数"));

    var num2 = Number(prompt("请输入一个数"));

    var result = GCD(num1,num2);

    alert(result);

    /*

    * 函数的功能:得到最大公约数

    * 函数名:GCD

    * 函数的参数:俩个整数

    * 返回值:最大公约数*/

    /*

    * 如果num1<num2则交换,确保num1是交大的

    * 计算余数

    * 当num1(除数),对num2(被除数)的余数不为0,重复一下步骤

    * num2=>num1,

    * 余数=>num2

    * 重新计算余数

    * 最终的到最大公约数,也就是num2的值*/

    functionGCD(num1,num2){

        /*return0;*/

        if(num1<num2){

         var t = num1;

            num1=num2;

            num2 = t;

        }

        var remainder = num1%num2;

        while(remainder!= 0){

            num1=num2;

            num2= remainder;

            remainder=num1%num2;

        }

        returnnum2;

    }

</script>

递归

所谓递归,就是在函数内部又去调用自己。

例如,求阶乘问题,在fact函数内部又去调用fact函数了


<script>

    /*计算n的阶乘*/

    functionfact(n){

        if(1== n){

            return1

        }

         returnn*fact(n-1);

    }

    alert(fact(5));

</script>

递归算法如果按照常规思路去理解是非常复杂的,函数调用一层一层嵌套调用,然后又一层一层返回,不妨换个思路去理解递归。

递归实际上就是将规模为n的问题降价为n-1的问题进行求解。也就是去找n和n-1之间的关系。

相关文章

网友评论

      本文标题:迭代递归

      本文链接:https://www.haomeiwen.com/subject/ytwvxqtx.html