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

     递归:方法定义中调用方法本身    如果是方法的嵌套调用 这不是递归
    基本思想就是“自己调用自己” 一个使用递归技术的方法将会直接或者间接的调用自己
     几个应注意的点:
      递归一定要有出口否则就是死递归
      递归的次数不能太多 否则就内存溢出
      构造方法不能递归使用

    例:

    public class DiGuiDemo {
        // public DiGuiDemo() {
        // DiGuiDemo();
        // }
    }

    递归求n的阶乘

    public class DiGuiDemo {
        public static void main(String[] args) {
            int jc = 1;
            for (int x = 2; x <= 5; x++) {
                jc *= x;
            }
            System.out.println("5的阶乘是:" + jc);
            
            System.out.println("5的阶乘是:"+jieCheng(5));
        }
        
        /*
         * 做递归要写一个方法:
         *         返回值类型:int
         *         参数列表:int n
         * 出口条件:
         *         if(n == 1) {return 1;}
         * 规律:
         *         if(n != 1) {return n*方法名(n-1);}
         */
        public static int jieCheng(int n){
            if(n==1){
                return 1;
            }else {
                return n*jieCheng(n-1);
            }
        }
    }


    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
    分析:我们要想办法找规律  兔子对数

    第一个月:     1
    第二个月:    1
    第三个月:    2
    第四个月:    3    
    第五个月:    5
    第六个月:    8
    由此可见兔子对象的数据是:  1,1,2,3,5,8...
    从第三项开始,每一项是前两项之和

    public static int fib(int n) {
            if (n == 1 || n == 2) {
                return 1;
            } else {
                return fib(n - 1) + fib(n - 2);
            }
        }
    }

    把E:JavaSE目录下所有的java结尾的文件的绝对路径给输出在控制台

    private static void getAllJavaFilePaths(File srcFolder) {
          // 获取该目录下所有的文件或者文件夹的File数组
          File[] fileArray = srcFolder.listFiles();
    
          // 遍历该File数组,得到每一个File对象
          for (File file : fileArray) {
              // 判断该File对象是否是文件夹
              if (file.isDirectory()) {
                  getAllJavaFilePaths(file);
              } else {
                  // 继续判断是否以.java结尾
                  if (file.getName().endsWith(".java")) {
                      // 就输出该文件的绝对路径
                      System.out.println(file.getAbsolutePath());
                  }
              }
         }
    }
  • 相关阅读:
    REHの个人主页
    多项式基础学习笔记(2)
    多项式基础学习笔记(1)
    FFT & NTT 学习笔记
    LCT学习笔记
    莫队学习笔记
    SAM 学习笔记
    网络流学习笔记
    关于魔术球贪心做法的证明
    【题解】异或粽子&加强版
  • 原文地址:https://www.cnblogs.com/renxixao/p/11456669.html
Copyright © 2011-2022 走看看