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());
                  }
              }
         }
    }
  • 相关阅读:
    洛谷 P1194 飞扬的小鸟 题解
    洛谷 P1197 星球大战 题解
    洛谷 P1879 玉米田Corn Fields 题解
    洛谷 P2796 Facer的程序 题解
    洛谷 P2398 GCD SUM 题解
    洛谷 P2051 中国象棋 题解
    洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
    洛谷 P1004 方格取数 题解
    洛谷 P2331 最大子矩阵 题解
    洛谷 P1073 最优贸易 题解
  • 原文地址:https://www.cnblogs.com/renxixao/p/11456669.html
Copyright © 2011-2022 走看看