递归的核心思想:自身调用自身

示例一:求5的阶乘

常规方法:

使用while循环

 1 public class Demo01 {
2
3 public static void main(String[] args) {
4 int result = test(5);
5 System.out.println("结果是"+result);
6 }
7
8 public static int test(int num) {
9 int result=1;
10 while (num>0) {
11 result=result*num;
12 num--;
13 }
14 return result;
15 }
16 }

使用递归

 1 public class Demo01 {
2
3 public static void main(String[] args) {
4 int result = print(5);
5 System.out.println("结果是"+result);
6 }
7
8 public static int print(int num) {
9 if(num==1) {
10 return 1;
11 }else {
12 return num*print(num-1);
13 }
14 }
15 }

示例二:

列出一个文件夹的子孙文件与目录

 1 public class Demo01 {
2
3 public static void main(String[] args) {
4 File dir=new File("F:\\aa");
5 listFiles(dir,"|--");
6 }
7
8 public static void listFiles(File dir, String space) {
9 File[] files = dir.listFiles();
10 for(File file : files) {
11 if(file.isFile()) {
12 System.out.println(space+file.getName());
13 }else if(file.isDirectory()) {
14 listFiles(file, "| "+space);
15 }
16 }
17 }
18 }

示例三:

删除一个非空的文件夹

 1 public class Demo01 {
2
3 public static void main(String[] args) {
4 File dir=new File("F:\\aa");//创建对象并指定
5 deleteDir(dir);
6 }
7
8 public static void deleteDir(File dir) {
9 File[] files = dir.listFiles(); //列出了所有的子文件
10 for(File file : files) { //文件遍历查询
11 if(file.isFile()) { //如果是文件,执行删除操作
12 file.delete();
13 }else if(file.isDirectory()) { //如果是文件夹,则再调用自身方法
14 deleteDir(file); //括号中的file只是名字,之所以为什么不是dir,只是将上面的名字又带入了deleteDir方法中
15 }
16 }
17 }
18 }

Java递归:一个NB自慰的操作的更多相关文章

  1. Java 递归调用 recursive 给一个参数 返回一大堆

    需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...

  2. Java实现单链表的各种操作

    Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素   4.实现链表的反转   5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...

  3. 学了编译原理能否用 Java 写一个编译器或解释器?

    16 个回答 默认排序​ RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...

  4. 慎用Java递归调用

    总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...

  5. 用Java实现一个二叉树

    介绍 使用Java实现一个int值类型的排序二叉树 二叉树 二叉树是一个递归的数据结构,每个节点最多有两个子节点. 通常二叉树是二分查找树,每个节点它的值大于或者等于在它左子树节点上的值,小于或者等于 ...

  6. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

    原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...

  7. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作

    在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...

  8. 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况

    用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ...

  9. 一个NB的安全认证机制

    这是一个NB的安全认证机制. 1.这是一个安全认证机制 2.可以防止黑客截获到客户端发送的请求消息,避免了黑客冒充客户端向服务器发送操作的请求. 原理与步骤: 1.客户端与服务器端都会放着一份验证用的 ...

随机推荐

  1. [server]利用python构建的服务器地址问题

    http://0.0.0.0:8000/ 利用github开源项目搭建AI上色师时,遇到了建立server却无法访问的问题,ip如上. 其实很简单,0.0.0.0并不是有效的ip地址,用localho ...

  2. SharePoint Framework 在web部件中使用已存在的JavaScript库 - 捆绑打包和外部引用

    博客地址:http://blog.csdn.net/FoxDave 在构建SPFx客户端web部件时,你可以使用公网已有的JavaScript库来构建强大的解决方案.但是在使用的时候你需要考虑你引用的 ...

  3. bootstrap-fileinput多图片上传

    在页面写一个input框: <input id="subGraphAddress1" name="subGraphAddress" type=" ...

  4. JS属性修改

    document.getElementById('p1').style.visibility='visible' document.getElementById('p1').style.visibil ...

  5. nginx申请并配置免费https

    你还在让你的网站裸奔在网络上吗?在这里我们将搭建免费版HTTPS,免费的,免费的,免费的,重要的事情说三遍,申请来源为letsencrypt, 超文本传输协议HTTP协议被用于在Web浏览器和网站服务 ...

  6. [模板] 树状数组 (C++ class)

    闲来无事(其实是打了两三道树状数组题),写了个树状数组模板…… /* Author: hotwords */ template<typename tp> class BinTree { p ...

  7. more语法

    二.more 文件内容或输出查看工具 more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比: [root@localhost ~]# ...

  8. Problem: 棋盘小游戏(一道有意思的acm入门题

    Problem Description 现有一个2行13列的棋盘,棋盘上的任意一个位置可以向他临近的8个位置移动.棋盘上的每一个位置的标号由一个大写的英文字母表示.现在给你一个移动的顺序,问你如何设置 ...

  9. 2018-软工机试-E-热河路(TLE只拿了90分,待思考)

    单点时限: 2.0 sec 内存限制: 256 MB 没有人在热河路谈恋爱, 总有人在天亮时伤感 如果年轻时你没来过热河路, 那你现在的生活是不是很幸福 ——李志<热河> 奔跑.跌倒.奔跑 ...

  10. VO、AO、执行环境和作用域链

    1.变量对象(variable object) 原文:Every execution context has associated with it a variable object. Variabl ...