【发布时间】:2015-11-30 17:01:45
【问题描述】:
我见过阶乘 prgrm 。我的问题是,每当调用递归时,如何在每个函数调用期间检索变量值? Nd 为什么当数字达到 1 时我们需要返回 1 .?如果它返回 1 那么为什么它不显示输出 1
【问题讨论】:
我见过阶乘 prgrm 。我的问题是,每当调用递归时,如何在每个函数调用期间检索变量值? Nd 为什么当数字达到 1 时我们需要返回 1 .?如果它返回 1 那么为什么它不显示输出 1
【问题讨论】:
例如代码:
int fact(int n)
{
if(n <= 1) return 1;
return n*fact(n-1);
}
n 是局部作用域的,所以在每个递归调用中都设置为函数参数中的检索,所以 fo 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
【讨论】: