zoukankan      html  css  js  c++  java
  • 递归

    * 递归:方法自己调用自己
    * 适用于:方法中运算的主体不变,但是运行的时候,参与运行的方法参数会变化
    *
    * 递归分为两种,直接递归和间接递归。
    * 直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。
    *
    * 注意:
    * 1.递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
    * 2.在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
    * 3.构造方法,禁止递归

    例:

    public class Demo02DiGui {
      public static void main(String[] args) {
        int i = dgSum(3);
        System.out.println(i);

        int a = dgJC(5);
        System.out.println(a);
      }

    /*
    * 2.3 用递归计算阶乘
    * 5阶乘5!=5*4*3*2*1=120
    * 计算几的阶乘就是这个数字一直递减相乘到1结束
    * 递归的目的:
    * 获取下一个被乘的数字:4,3,2,1
    * 递归结束的条件:
    * 获取到1的时候结束递归
    */
    private static int dgJC(int i) {
    //获取到1的时候结束递归
      if(i==1){
        return 1;
      }
      return i*dgJC(i-1);
    }

    /*
    * 2.2 计算1-n之间的和,使用递归完成
    * 100+(100-1)+(100-2)+...+1
    * n+(n-1)+(n-2)+..+1
    * 递归的目的:
    * 获取下一个被加的数字:99,98,97...1
    * 递归结束的条件:
    * 获取到1的时候结束递归
    */
    private static int dgSum(int n) {
      //获取到1的时候结束递归
      if(n==1){
        return 1;
      }
      //获取下一个被加的数字
      return n+dgSum(n-1);
    }

    /*
    * 2.4 递归打印所有子目录中的文件路径
    * 编写一个方法用来打印指定目录中的文件路径,并进行方法的调用
    * 要求:若指定的目录有子目录,那么把子目录中的文件路径也打印出来
    *
    * 需求:
    * d:\demo要遍历的文件夹
    */
    public class Demo03DiGui {
    public static void main(String[] args) {
    File file = new File("d:\demo");
    getAllFile(file);
    }

    /*
    * 创建一个方法,传递文件夹的File对象
    * 方法内部对这个文件夹进行遍历
    */
    private static void getAllFile(File file) {
    //先打印一次要遍历的文件夹
    System.out.println(file);
    File[] files = file.listFiles();
    for (File f : files) {
    /*
    * 判断f如果是一个文件夹,则继续调用getAllFile遍历这个文件夹
    * f如果是一个文件,则直接输出
    */
    if(f.isDirectory()){
    getAllFile(f);//递归
    }else{
    System.out.println(f);
    }
    }
    }
    }

    出身决定命运,但努力一定不会错。
  • 相关阅读:
    Spring 之 BeanFactory 源码
    pig first trial
    分布
    Think Stats CDF, mayplot
    think stat  4_1, 4_3
    python 指数分布的模拟 expovariate
    [转载]巴洛克和哥特式建筑的区别
    统计中的过采样
    Python iterator/generator
    python zip
  • 原文地址:https://www.cnblogs.com/xiaolige/p/9520800.html
Copyright © 2011-2022 走看看