首页 > 其他分享 >递归-练习递归求阶乘、递归归打印多个目录、综合练习文件搜索

递归-练习递归求阶乘、递归归打印多个目录、综合练习文件搜索

时间:2022-10-17 10:44:21浏览次数:50  
标签:file1 File 递归 练习 file 阶乘 method

练习递归求阶乘

阶乘:所有小于及等于该数的正整数的积

n的阶乘:n!=n*(n-1) *..... *3 * 2 * 1

分析:这与类和类相似 只不过换成了乘法运算 学员可以自己练习 需要注意阶乘值符合int类型的范围

推理得出:n!=n*(n-1)!

代码:

复制代码
public static void main(String[] args) {
        int method = method(5);
        System.out.println(method);
    }

    private static int method(int num) {
        if (num==1){
            return 1;
        }
        return num*method(num-1);
    }
复制代码

运行结果:

 

 递归打印多个目录

 

 代码:

public static void main(String[] args) {
File file = new File("E:\\file");
method(file);
}

private static void method(File file) {
File[] files = file.listFiles();
for (File file1 : files) {
//对遍历得到的File对象进行判断 判断是否是文件夹
if (file1.isDirectory()){
//递归(自己调自己)
method(file1);
}else{
System.out.println(file1);
}
}
}

运行结果:

这里的输出结果有很多 但是我只要后缀是mp3的文件 进下来就是文件搜索

文件搜索

他这有很多后缀 比如txt、mp3、java 我们取出后缀为mp3的文件

分析:

1.目录搜索 无法判断多少级目录 所以使用递归 遍历所有目录

2.遍历目录时 获取的子文件 通过文件名称 判断是否符合条件

代码:

public static void main(String[] args) {
File file = new File("E:\\file");
method(file);
}

private static void method(File file) {
File[] files = file.listFiles();
for (File file1 : files) {
//对遍历得到的File对象进行判断 判断是否是文件夹
if (file1.isDirectory()) {
//递归(自己调自己)
method(file1);
} else {
//将文件遍历转为字符串 也是获取文件的名字
String name = file1.getName();
//使用String里的endsWith:查看结尾是否是mp3这个文件
boolean b = name.endsWith(".mp3");

if (b) {
System.out.println(file1);
}
}
}
}

运行结果:

标签:file1,File,递归,练习,file,阶乘,method
From: https://www.cnblogs.com/shenziyi/p/16798359.html

相关文章

  • 自定义异常和练习自定义异常
    自定义异常java中不同的异常类,分别表示着某一种具体的异常情况那么在开发中总是有些异常情况是SUN没有定义好的此时我们根据自己业务的异常情况来定义异常类例如年龄......
  • 550JDBC各个类详解_ResultSet_遍历结果集 and551 JDBC练习_select语句
    JDResultSetBC各个类详解-ResultSet-遍历结果集Boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true注......
  • 第二季:5公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁【Java
    第二季:5值传递和引用传递【Java面试题】​​前言​​​​推荐​​​​值传递​​​​说明​​​​题目​​​​24TransferValue醒脑小练习​​​​第二季:5公平锁/非公平锁/......
  • 548JDBC练习_update、DDL语句和549JDBC各个类详解_ResultSet_基本使用
    JDBC练习_update and DDL语句//删除数据库内容语句//导入jar包publicstaticvoidmain(String[]args){Connectionconn=null;S......
  • Linux专项练习
    grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是......
  • python练习之双人对战
    1目的    为了巩固自己近期学习的python知识,所以写了一个demo加深我对python的理解2demo需求    模拟两个人互相对战的过程,其中两个人初始血量为100,都可以可......
  • 递归函数
    目录递归函数递归函数递归函数就是直接或间接调用函数自身的函数,当我们使用这种函数的时候,并不会出现预料之中的死循环,当循环次数达到1000左右就会被解释器强行停止,虽然......
  • PHP 存在不受控制的递归漏洞
    PHP存在不受控制的递归漏洞在PHP受影响版本内,phar解压缩器代码将递归解压缩“quines”gzip文件,从而导致无限循环。攻击者会利用此漏洞导致服务器资源耗尽。影响......
  • 递归与分治法实现快速排序算法
    ​本人CSDN链接:http://t.csdn.cn/Wt0Nm提示:首先了解并明白递归与分治法的快速排序文章目录 前言递归与分治法实现快速排序算法,输入一串以英文字符逗号隔开的数......
  • 【Nuxt.js】案例练习入门
    SQL表/*NavicatPremiumDataTransferSourceServer:localhost_3306SourceServerType:MySQLSourceServerVersion:50549SourceHost:......