zoukankan      html  css  js  c++  java
  • 32 递归

    /*
    * 需求:求5的阶乘
    * 5! = 5 * 4 * 3 * 2 * 1; //120
    * 5! = 5 * 4!; //120
    * 4! = 4 * 3!; //24
    * 3! = 3 * 2!; //6
    * 2! = 2 * 1!; //2
    * 1! = 1; //1


    n! = n * (n - 1)!

    递归:把大问题拆成很多小问题,然后再把小问题拆成更多的小问题,
    当我们把更多小问题解决了,小问题也解决了
    随着小问题的解决,大问题也随之解决了
    在方法本身不断的调用方法自己

    递归注意事项:
    递归一定要有出口,内存溢出
    递归次数不宜过多,内存溢出

    public void show(int n) {//5
    //出口
    if(n == 0) {
    return;
    }

    show(n - 1);
    }
    */

    public class jiecheng {
        public static void main(String[] args) {
            int result = jiec(5);
            System.out.println(result);
        }
    
        public static int jiec(int n) {
            if(n==1) {
                return 1;//出口
            }else {
                return n * jiec(n-1); //n!=n*(n-1)!
            }
        }
    }

    输出

    /*
    * 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
    * 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
    * 问第二十个月的兔子对数为多少?
    *
    *
    * 1
    * 1
    * 2
    * 3
    * 5
    * 8
    * 13
    *
    * 规律:除了第一个月和第二月以外,其余每个月都是前两个月之和
    * 斐波那契列数
    *
    */

    public class Demo2 {
        public static void main(String[] args) {
            int result = method(20);
            System.out.println(result);
        }
    
        //兔子数量多少对
        public static int method(int n) {
         if(n==1) {
             return 1;
         }else if (n==2) {
             return 1;
         }else {
             return method(n-1) + method(n-2); //如果不是第一个月和第二个月,则兔子的数量是前两个月之和
         }
        }
    }

    输出

  • 相关阅读:
    Grafana+Prometheus监控mysql性能
    性能测试监控平台Grafana的使用
    搭建grafana+telegraf+influxdb服务器性能监控平台
    cocos2d-x jsb 防止触摸事件传递
    web app 相关记录
    如何在Teamcenter中使用PMI?
    浅谈人机工程应用在数字化工艺中的作用
    关于奇葩说
    一些感想
    关于起名
  • 原文地址:https://www.cnblogs.com/longesang/p/11304575.html
Copyright © 2011-2022 走看看