递归算法
2021-06-27 08:06
标签:ima ati nbsp bsp lse char tor 调用 ring 递归算法是方法内调用自身; 递归算法必须要有个明确的条件作为算法结束的出口,被称为递归出口; 递归算法的不足:在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等,所以一般不提倡用递归算法设计程序。 递归算法有个很重要的就是递归算法的出口条件,满足出口条件,就不递归了。 举个栗子:代码如下: public class TestFactorial { public static void hanio(int n,char a,char b,char c){ 截图: 递归算法 标签:ima ati nbsp bsp lse char tor 调用 ring 原文地址:https://www.cnblogs.com/GGboy-wu/p/9652269.htmlclass Factorial {
//递归函数
int fact(int n){
if(n==1){
return 1;
}else{
return fact(n-1)*n;
}
}
}
public static void main(String[] args) {
Factorial factorial= new Factorial();
System.out.println("factorial(10)="+factorial.fact(10));
}
}
结果截图:再举个栗子:这是个移动盘子的实验
public class Hanio {
public static void main(String[] args){
int i=3;
char a =‘A‘,b=‘B‘,c=‘C‘;
hanio(i,a,b,c);
}
if(n==1)
System.out.println("移动"+n+"号盘子从"+a+"到"+c);
else{
hanio(n-1,a,c,b);//把上面n-1个盘子从a借助b搬到c
System.out.println("移动"+n+"号盘子从"+a+"到"+c);//紧接着直接把n搬动c
hanio(n-1,b,a,c);//再把b上的n-1个盘子借助a搬到c
}
}
}
上一篇:Python分类