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.迭代难于理解但效率高,递归易于理解效率低,死递归会造成栈溢出,内存开销大,推荐递归








  • 相关阅读:
    Net
    GUI
    第三方模块
    步入大四的第一天 2020/9/3
    期末复习计划及每日更新 8/10-9/2
    成都,come back 2020/8/10
    回家第三天 2020/7/31
    连续两天的好太阳的一天 2020/7/27
    规划规划,接下来的一个月该如何安排 7/25
    紧紧张张又兴兴奋奋的一天 2020/7/24
  • 原文地址:https://www.cnblogs.com/bronze-y/p/10939975.html
Copyright © 2011-2022 走看看