可以通过递归的方法实现阶层(递归:分为递归与回溯)递归并不是纸面上的意思,有递归就一定有回溯。
代码如下:
package Recursion;
public class Recursion_Demp_02 {
//阶乘:也是通过递归来实现
public static void main(String[] args) {
Recursion_Demp_02 recursion_demp_02 =new Recursion_Demp_02();
int res =recursion_demp_02.factorial(5);
System.out.println(res);
}
public int factorial(int n)
{
if(n==1)
return 1;
else {
return factorial(n-1)*n;
}
}
}
?
内存分析图:
递归重要规则:
1.执行一个方法时,就创建一个新的受保护的独立空间(栈空间)
2.方法的局部变量是独立的,不会相互影响,比如n变量
3.如果方法中使用的是引用数据类型变量,就会共享该引用类型的数据。
4.递归必须向推出递归条件逼近,否则就是无限递归
5.当一个方法执行完毕或执行到renturn 语句,就会返回,遵守谁调用,就将结果返回给谁,同时当方法执行完毕或返回时,该方法也就执行完毕。
原文:https://blog.51cto.com/u_15286849/3169815