Lea*_*nIT 2 java recursion factorial
我似乎有点坚持真正掌握递归,所以我可以使用它们.
这是我在教程中找到的示例.
我想验证一下我是否正确理解了这一点.
public class SolveRecursion {
public void recursionPerform(){
System.out.println(fact(4));
}
public static long fact(long n){
if (n <= 1){
return n;
}
else{
return n * fact(n-1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我们将n设置为4.
在那种情况下,这是怎么回事?(抱歉格式混乱,我尽我所能)
(是n(4)<= 1,否),否则,n(4)*(Is(n-1 = 3)<= 1,否),否则,n(3)*(Is(n-1 = 2)<= 1,否),否则*(Is(n-1 <= 1),是)*n(1)
rge*_*man 11
这是操作的顺序:
n = 4
Is 4 <= 1? No
4 * fact(3)
n = 3
Is 3 <= 1? No
4 * 3 * fact(2)
n = 2
Is 2 <= 1? No
4 * 3 * 2 * fact(1)
n = 1
Is 1 <= 1? Yes, return 1. // Base Case
4 * 3 * 2 * 1
24
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |