zoukankan      html  css  js  c++  java
  • 递归与迭代

    递归与迭代的区别:

    1)递归是自己调用自己,自身实现循环

    eg:斐波那契数列应用

          /*
                一对兔子,第三个月开始,每个月生产一对小兔子
                小兔子,从第三个月开始,每个月生产一对小兔子
                问: 1--12月各有多少对兔子
            */
                     1  1  2  3  5  8  13  21

    for(int i=1;i<13;i++){
    int num=Test.getCount(i);
    System.out.println(i+"月"+num);
    }
    public static int getCount(int month){
    if(month==1||month==2){
    return 1;
    }else{
    return getCount(month-1)+getCount(month-2);
    }
    }


    2.函数内某段代码实现循环(迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值.)
    eg:
    1.斐波那契数列

    public static void feibonaqishulie(int n){

    int a=1,b=1,c=0;
        for(int i=1;i<=n;i++){
    if(i==1){
    System.out.println("第"+i+"个是"+a);
    }else if(i==2){
    System.out.println("第"+i+"个是"+b);
    }else{
    c=a+b;
    a=b;
    b=c;
    System.out.println("第"+i+"个是"+c);
    }
    }
    }



    2.计算1-100所有实数的和:
    int sun=1;
    for(int i=2;i<=100;i++){
    sun=sun+i;
    }

    3.迭代难于理解但效率高,递归易于理解效率低,死递归会造成栈溢出,内存开销大,推荐递归








  • 相关阅读:
    前端插件集合
    建立controller
    W3C对DOM2.0定义的标准事件
    事件代理和委托学习
    css3属性flex弹性布局设置三列(四列)分布样式
    css+html 关于文本的总结(整理中)
    jquery阻止事件冒泡的3种方式
    web前端打印总结
    前端打印插件
    object实现小老鼠交互
  • 原文地址:https://www.cnblogs.com/bronze-y/p/10939975.html
Copyright © 2011-2022 走看看