递归可以作为一种解决问题的思想,简单来说就是自己调用自己,可以用少量的代码解决一些复杂的问题,并且这个问题是一个重复的过程,但是递归必须要有一个递归停止的条件,如果递归不停止的话就会出现“爆栈”现象
这里我们使用求一个数的阶层可以来理解递归
1!=1
2!=2 * 1 -----> =2 * 1!
3!=3 * 2 * 1 -----> =3 * 2! ----->3 * 2 * 1!
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()){
System.out.println(f(scanner.nextInt()));
}
}
// 求阶层的方法
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
当n=2时,执行2 * f(1),f(1)也就是n=1时
当n=3时,执行3 * f(2),f(2)也就是n=2时
.....
结果如下,在这里n==1的判断就是递归的结束.
原文:https://www.cnblogs.com/xu-nan/p/14545239.html