前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java递归算法应用

Java递归算法应用

作者头像
用户9979303
发布2022-10-28 15:32:32
3130
发布2022-10-28 15:32:32
举报
文章被收录于专栏:over文章over文章

简介: 递归算法

递归: 就是函数自身调用自身。

什么时候用递归呢?

当一个功能被重复使用,而每一次使用该功能时的参数不确定,都由上次的功能元素结果来确定。

简单说: 功能内部又用到该功能,但是传递的参数值不确定。(每次功能参与运算的未知内容不确定)。

递归的注意事项:

1:一定要定义递归的条件。

2:递归的次数不要过多。容易出现 StackOverflowError 栈内存溢出 错误。

其实递归就是在栈内存中不断的加载同一个函数。

列出(或删除)指定目录下的所有文件

代码语言:javascript
复制
 /**
     * 找出指定目录下的所有文件
     * 递归
     *
     * @param files
     * @return
     */
    public static List<File> listFiles(File files) {
        List<File> fileList = new ArrayList<>();
        if (files.isDirectory()) {
            for (File file : files.listFiles()) {
                fileList.addAll(listFiles(file));
            }
        } else {
            fileList.add(files);
        }
        return fileList;
    }

测试代码

代码语言:javascript
复制
public static void main(String args[]) {
    List<File> l = listFiles(new File("E:\\kejiang\\IdeaProjects\\JavaProjectTest\\src"));
    System.out.println("共" + l.size() + "个文件");
    for (File f : l) {
        System.out.println(f.getName());//(这里只打印了文件的文件名)
    }
}

运行效果

代码语言:javascript
复制
共23个文件
ArrayTest.java
Test.java
CopyTextFileTest.java
CopyTextFileTest_Copy.txt
RecursionTest.java
SystemIOTest.java
SystemOut.txt
ListTest.java
UserBean.java
UserComparator.java
Client.java
Server.java
StringTest.java
Consumer.java
Producer.java
ProducerConsumerTest.java
Resource.java
Consumer.java
MainTest.java
Producer.java
Resource.java
RunnableTest.java
ThreadTest.java

计算从1+2+3+…+N的和

代码语言:javascript
复制
 /**
     * 获取从1+到N的和
     *
     * @param num
     * @return
     */
    public static int getSum(int num) {
        if (num == 1) {
            return 1;
        }
        return num + getSum(num - 1);
    }

测试代码:

代码语言:javascript
复制
  public static void main(String args[]) {
         System.out.println(getSum(100));
    }

结果:5050

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 列出(或删除)指定目录下的所有文件
  • 计算从1+2+3+…+N的和
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档