java算法之 递归

注:原创作品,分享以供交流学习,转载请注明出处。

递归就是方法调用自身。对于递归来说,一定有一个出口,让递归结束

只有这样才能不出现死循环。递归如果出现问题,调试起来不容易,应为一直在一个方法里运行,看不出来哪里出现问题,随意递归对思维要求还是比较高的。

注意:使用递归方法上去一定找出口,否则死循环

下面的例子是用递归的方法计算阶乘。 N! = n*(n-1)!
public class Recursion {
//用递归计算阶乘
public static int computer2(int number)
{
//首先判断递归出口(所有递归算的第一步都需要找到出口)
if(1 == number)
{
return 1;
}
else
{
return number * computer2(number-1);
}
}
//用递归计算斐波那契额数列1,1,3,4,7,11,18
public static int feibonaqie(int n)
{
//递归出口的判断
if(1 == n || 2 == n)
{
return 1;
}
else
{
return feibonaqie(n - 1) + feibonaqie(n - 2);
}
}
public static void main(String[] args) {
System.out.println(computer2(5));
System.out.println("斐波那契额第九位数字为:" + feibonaqie(9));
}
}


使用递归删除文件实例:
import java.io.File;
public class RecursionDeleteAllFileTest {
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) {
deleteAll(new File("d:\\cvs"));
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值