Java递归:一个NB自慰的操作
递归的核心思想:自身调用自身
示例一:求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自慰的操作的更多相关文章
- Java 递归调用 recursive 给一个参数 返回一大堆
需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...
- Java实现单链表的各种操作
Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素 4.实现链表的反转 5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...
- 学了编译原理能否用 Java 写一个编译器或解释器?
16 个回答 默认排序 RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...
- 慎用Java递归调用
总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...
- 用Java实现一个二叉树
介绍 使用Java实现一个int值类型的排序二叉树 二叉树 二叉树是一个递归的数据结构,每个节点最多有两个子节点. 通常二叉树是二分查找树,每个节点它的值大于或者等于在它左子树节点上的值,小于或者等于 ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
- Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...
- 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ...
- 一个NB的安全认证机制
这是一个NB的安全认证机制. 1.这是一个安全认证机制 2.可以防止黑客截获到客户端发送的请求消息,避免了黑客冒充客户端向服务器发送操作的请求. 原理与步骤: 1.客户端与服务器端都会放着一份验证用的 ...
随机推荐
- [server]利用python构建的服务器地址问题
http://0.0.0.0:8000/ 利用github开源项目搭建AI上色师时,遇到了建立server却无法访问的问题,ip如上. 其实很简单,0.0.0.0并不是有效的ip地址,用localho ...
- SharePoint Framework 在web部件中使用已存在的JavaScript库 - 捆绑打包和外部引用
博客地址:http://blog.csdn.net/FoxDave 在构建SPFx客户端web部件时,你可以使用公网已有的JavaScript库来构建强大的解决方案.但是在使用的时候你需要考虑你引用的 ...
- bootstrap-fileinput多图片上传
在页面写一个input框: <input id="subGraphAddress1" name="subGraphAddress" type=" ...
- JS属性修改
document.getElementById('p1').style.visibility='visible' document.getElementById('p1').style.visibil ...
- nginx申请并配置免费https
你还在让你的网站裸奔在网络上吗?在这里我们将搭建免费版HTTPS,免费的,免费的,免费的,重要的事情说三遍,申请来源为letsencrypt, 超文本传输协议HTTP协议被用于在Web浏览器和网站服务 ...
- [模板] 树状数组 (C++ class)
闲来无事(其实是打了两三道树状数组题),写了个树状数组模板…… /* Author: hotwords */ template<typename tp> class BinTree { p ...
- more语法
二.more 文件内容或输出查看工具 more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比: [root@localhost ~]# ...
- Problem: 棋盘小游戏(一道有意思的acm入门题
Problem Description 现有一个2行13列的棋盘,棋盘上的任意一个位置可以向他临近的8个位置移动.棋盘上的每一个位置的标号由一个大写的英文字母表示.现在给你一个移动的顺序,问你如何设置 ...
- 2018-软工机试-E-热河路(TLE只拿了90分,待思考)
单点时限: 2.0 sec 内存限制: 256 MB 没有人在热河路谈恋爱, 总有人在天亮时伤感 如果年轻时你没来过热河路, 那你现在的生活是不是很幸福 ——李志<热河> 奔跑.跌倒.奔跑 ...
- VO、AO、执行环境和作用域链
1.变量对象(variable object) 原文:Every execution context has associated with it a variable object. Variabl ...