353使用递归计算阶乘和354递归打印多级目录

练习--使用递归计算阶乘

复制代码
 
public static void main(String[] args) {
        int jc = jc(5);
        System.out.println(jc);
    }
    /*
        定义方法使用递归计算阶乘
        5的阶乘:5! = 5*(5-1)*(5-2)*(5-3)*(5-4)=5*4*3*2*1递归结束的条件
        获取到1的时候结束递归的目的
         获取下一个被乘的数字(n总)

     */
    private static int jc(int n){
        //获取到1的时候结束
        if (n==1){
            return 1;
        }
        //获取下一个被乘的数字
        return n*jc(n-1);
    }
 
复制代码

 

复制代码
package exam;
 
import java.util.Scanner;
 
public class 阶乘 {
    /**
     * 计算阶乘的函数
     */
    static long factorial(int m){
        if (m <= 1){
            return 1;
        }else{
            return m * factorial(m-1);
        }
    }
    public static void main(String[] args) {
        System.out.print("请输入需要求阶乘的数:");
        Scanner input = new Scanner(System.in);
        int i = input.nextInt();
        factorial(i);
        System.out.println(i+"的阶乘结果是:"+factorial(i));
    }
}
复制代码

 

打印多级目录

 

复制代码
/*
    练习:
        递归打印多级目录
    需求:
        遍历c:\\abc文件夹,及abc文件夹的子文件夹
        只要.java结尾的文件
        c:\\abc
        c:\\abc\\abc.txt
        c:\\abc\\abc.java
        c:\\abc\\a
        c:\\abc\\a\\a.jpg
        c:\\abc\\a\\a.java
        c:\\abc\\b
        c:\\abc\\b\\b.java
        c:\\abc\\b\\b.txt
 */
 import java.io.File;

public class demo03 {
    public static void main(String[] args) {
        File f1 = new File("C:\\aaaa");
        getall(f1);
    }

    public static void getall(File f ){
        File[] files = f.listFiles();
        for (File fs: files) {
            if(fs.isDirectory()==true)
                getall(fs);
            if(fs.getName().toLowerCase().endsWith(".java"))//仅打印出后缀名为java(不区分大小写)的文件
                System.out.println(fs);
        }
    }
}
复制代码

 

复制代码
 
 public static void main(String[] args) {
        File file = new File("D:\\EV");
        getAllFile(file);
    }

    /*
        定义一个方法,参数传递File类型的目录
        方法中对目录进行遍历
    */
    public static void getAllFile(File dir){
        File[] files = dir.listFiles();//打印被遍历的目录名称
        System.out.println(dir);
        for (File f : files) {
            //对遍历得到的File对象f进行判断,判断是否是文件夹
            if(f.isDirectory()){
                //f是一个文件夹,则继续遍历这个文件夹
                //getAllFile方法就是传递文件夹,比那里文件夹的方法
                //所以直接调用getAllFile方法即可:递归(自己调用自己)
                getAllFile(f);
            }else {
                //f是一个文件,直接打印即可
                System.out.println(f);
            }
        }
    }
 
复制代码
posted @   ja不会va  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示