2.2 递归累加求和 计算 1---n 的和java
public class Exercise01 {数组 public static void main(String[] args) {ide int n=10;idea int num=Meth(n);spa System.out.println(num);.net }对象 public static int Meth(int n){递归 if(n==1){ci //若是==1 就返回get return 1; } //若是不等于1的话,递归n+(n+1); return n+Meth(n-1); }
} |
2.3 递归求阶乘 阶乘:全部小于及等于该数的正整数的积例如 n 的阶乘:n!=n*(n-1)*…*3*2*1
public class Exercise02 { public static void main(String[] args) { // n!=n*(n-1); int n=6; int a=Meth(n); System.out.println(a); } public static int Meth(int n){ if(n==1){ return 1; } //1的阶乘是1 // n不为1时,方法返回 n! = n*(n‐1)! 递归调用getValue方法
return n*Meth(n-1); } } |
2.4 递归打印多级目录
分析:多级目录的打印,就是当目录的嵌套,遍历以前,没法知道到底有多少级目录,因此
咱们能够使用递归实现
public class Exercise03 { public static void main(String[] args) {
//建立File对象 File ff=new File("F:\\"); Meth(ff); } public static void Meth(File demo){
//File[] listFiles();返回一个File数组,表示该file目录中全部的文件和目录
File[]files=demo.listFiles(); for(File ss:files){ //判断若是是文件,就打印出绝对路径 if(ss.isFile()){ //是文件就打印文件绝对路径 System.out.println("文件名:"+ss.getAbsoluteFile()); }else{ //不是文件的话,就是目录打印目录的绝对路径 System.out.println("目录:"+ss.getAbsoluteFile()); //继续遍历,就造成递归的方法 Meth(ss); } } } } |
第三章 综合练习
3.1 文件搜索
搜索某个目录中.java 的文件,例如 IDEA 的工做空间:D:\2019-10\ideawork
分析: 一、 目录搜索,没法判断多少级目录,因此使用递归,遍历全部的目录
二、 遍历目录时,获取的子文件,经过文件名,判断是否符合条件
public class Exercise04 { public static void main(String[] args) {
//建立File对象 File ff=new File("D:\\Day02_demo2\\src\\day08"); //表示该目录中的全部文件和目录 File[]files= ff.listFiles(new Myinterfaces()); for(File ss:files){ System.out.println(ss.getName()); } } } class Myinterfaces implements FilenameFilter{ public boolean accept(File dir, String name){ //File表示当亲过滤的对象,name表示当前过滤的文件名 if(name.endsWith(".java")){ return true; } return false; } } |