我见过了阶乘prgrm。我的问题是每次调用递归时如何在每次函数调用期间检索变量值? Nd为什么我们需要在数字达到1时返回1。如果它返回1那么为什么它不显示输出1
答案 0 :(得分:0)
E.g代码:
int fact(int n)
{
if(n <= 1) return 1;
return n*fact(n-1);
}
n的作用域是本地的,因此在每个revursive调用中都会在funtion参数中设置为retrieve,所以3:
for fact(3) -> n1 = 3
for fact(2) -> n2 = 2
for fact(1) -> n3 = 1
> Then fact(3) = n1*n2*n3 => 3*2*1 = 6