java递归

匿名 (未验证) 提交于 2019-12-02 21:52:03


基本思想就是“自己调用自己” 一个使用递归技术的方法将会直接或者间接的调用自己

  递归一定要有出口否则就是死递归
  递归的次数不能太多 否则就内存溢出
  构造方法不能递归使用

例:

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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?








从第三项开始,每一项是前两项之和

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());               }           }      } }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!