Java递归-实现阶乘;斐波拉契数列;删除文件夹的文件
来源:互联网 发布:山东省软件评测中心 编辑:程序博客网 时间:2024/06/05 11:33
所谓递归(Recursion),就是方法调用自身,对于递归来说,一定要有一个出口,让递归结束,只要这样,才能保证不出现死循环。
————————
实例1:
/*
* 使用递归实现阶乘
*/
public class RecursionTest1
{
public int compute(int number)
{
//当number为1的时候,直接返回1,1的阶乘就是1
if(1 == number)
{
return 1;
}
//调用自身,完成运算
else
{
return number * compute(number-1);
}
}
public static void main(String[] args) { RecursionTest1 recursion=new RecursionTest1(); System.out.println(recursion.compute(2)); }
}
————————————————————————————————————————————
实例2:使用递归实现斐波拉切数列:
斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
这个数列从第三项开始,每一项都等于前两项之和。
/*
* 使用递归计算斐波拉切数列
*/
public class FibonacciTest
{
//n表示第n个数
public int compute(int n)
{
//递归的出口
if(n==1 || n==2)
{
return 1;
}
else { return compute(n-1) +compute(n-2); } } public static void main(String[] args) { FibonacciTest fi=new FibonacciTest(); System.out.println(fi.compute(4)); }
}
————————————————————————————————————————————————
实例3:
import java.io.File;
/*
* File类下有一个删除文件的delete方法public boolean delete(),但是API中告诉我们
* 删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。
* 能删除:只有文件以及空的文件夹
* 不能删除:文件夹1里面还有非空的文件夹2等。
* 怎样使用递归实现,即使文件夹里面还有非空的文件夹
*/
public class DeleteFile
{
public static void deleteAll(File file)
{
//考虑递归的出口点:即什么时候程序不再调用自身而是返回一个值
//对于本例:一是如果待删除的目标就是一个文件,一定可以返回;二是这个目标是空文件夹
if(file.isFile() || file.list().length==0)
{
file.delete();
}
else
{
//得到非空目录下的文件
File[] files=file.listFiles();
//遍历,删除里面 的每一个对象
for(File f:files)
{
//递归,删除里面文件
deleteAll(f);
//只有把里面文件删除,采取删除自身
f.delete();
}
}
} public static void main(String[] args) { //测试 //9deleteAll(new File("E:\\fff")); }
}
- Java递归-实现阶乘;斐波拉契数列;删除文件夹的文件
- java通过递归实现文件夹的删除
- java 递归实现删除或查询指定文件夹下的所有文件
- 递归求阶乘,递归找出文件夹下的所有文件
- 自己写的java递归删除文件及文件夹
- python 实现递归删除文件和文件夹
- Java的copy文件和文件夹以及删除文件夹(包括递归与非递归算法)
- JAVA利用递归删除文件和文件夹
- Java递归删除文件夹中的所有文件
- java递归删除文件以及文件夹
- java递归删除文件及文件夹
- java递归删除文件或文件夹
- java递归删除文件夹以及文件
- java删除文件夹(递归删除其子目录的所有文件夹及文件)
- 递归删除 文件/文件夹
- 递归实现文件删除java
- Java递归实现文件删除
- Java递归实现文件删除
- ExpandableListView实现侧页导航栏目
- Android studio Maven仓库使用
- 从0开始(一)
- 为什么网站需要个使用手册
- 配置SQL SERVER远程连接以及kettle连接SQL SERVER
- Java递归-实现阶乘;斐波拉契数列;删除文件夹的文件
- 如何在xib/storyboard中设置视图的属性,如圆角?
- DB9和DB25的常用信号脚说明;RS232接口针脚定义
- 接口安全性解析
- 第1章 UML基础:类的关系
- Jquery validate使用小结
- apache和tomcat有什么不同,为什么要整合apache 和tomcat? ----- 百度知道
- CBB电容的特点和原理用途
- Apache、Tomcat与Catalina作为软件名字的含义与关系