递归算法是什么?
作者:网络转载 发布时间:[ 2013/1/10 9:50:23 ] 推荐标签:
程序分析:这个实例是非常经典的实例,主要是利用递归实现了Fibonacci数列。这个递归算法的出口是在
[java] view plaincopyprint?
if(index==1 || index==2){
return 1;
}
if(index==1 || index==2){
return 1;
}
这个代码段上,如果程序的index符合条件会停止进行递归。所以这个程序的运行流程是:
刚才说了这个方法十几度危险的,为什么这么说,原因在于在这个递归里做了冗余的工作,如图,我们在f4里面已经计算了f2,可是f3里有同样计算了f2,以此类推那些冗余的工作,在数值比较小的情况下,计算机还是可以接受的。但是,当求解的数值比较大,它是成指数级增长的,所以不要再递归中做重复的工作。
②n的阶乘
问题描述:求5的阶乘
求解代码:
[java] view plaincopyprint?
public class Factorial_Five {
/**
* time:2012.12.2
* author:王金宇
* description:递归求n的阶乘
*/
public static void main(String[] args) {
Factorial_Five factorial_Five=new Factorial_Five();
int result=factorial_Five.factorial(5);
System.out.println(result);
}
public int factorial(int index){
if(index==1){
return 1;
}else{
return factorial(index-1)*index;
}
}
}
public class Factorial_Five {
/**
* time:2012.12.2
* author:王金宇
* description:递归求n的阶乘
*/
public static void main(String[] args) {
Factorial_Five factorial_Five=new Factorial_Five();
int result=factorial_Five.factorial(5);
System.out.println(result);
}
public int factorial(int index){
if(index==1){
return 1;
}else{
return factorial(index-1)*index;
}
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11