递归函数中他的值是怎么算出来的?
发布网友
发布时间:2023-05-15 17:49
我来回答
共2个回答
热心网友
时间:2024-11-22 01:00
//这个方法就是递归的核心
public static int method(int n){
//这个是结束条件,只有当前传入的n等于1时才终止,并返回1
if(n==1)
return 1;
//只要n不等于1,这个方法就会继续递归下去
else
return n*method(n-1);
}
method(5)运行的详细过程如下,先从左边向下读,然后到底层后,再从右边底层向上读:
n == 5:
n不等于1,返回:n * method(5 - 1) —> method(5) = 5 * method(4) = 120
n == 4:
n不等于1,返回:n * method(4 - 1) —> method(4) = 4 * method(3) = 24
n == 3:
n不等于1,返回:n * method(3 - 1) —> method(3) = 3 * method(2) = 6
n == 2:
n不等于1,返回:n * method(2 - 1) —> method(2) = 2 * method(1) = 2
n == 1:
n等于1,返回:1 这个值就是method(1),一层一层再代上去
最后返回结果:
method(5) = 120
热心网友
时间:2024-11-22 01:01
5*method(4)
=5*4*method(3)
=20*3*method(2)
=60*2*method(1)
=120*1
=120