A-A+
设有一个递归算法如下: int fact(int n){ if(n<=0)return 1;
问题详情
设有一个递归算法如下: int fact(int n){ if(n<=0)return 1; else return n*fact(n-1); } 下面正确的叙述是(35)。
A.计算fact(n)需要执行n次函数调用
B.计算fact(n)需要执行n+1次函数调用
C.计算fact(n)需要执行n+2次函数调用
D.计算fact(n)需要执行n-1次函数调用请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:B
解析:主程序调用fact(n)称为外部调用,其他调用为内部调用,直到调用fact(0)为止,fact(n)调用fact(n-1),fact(n-1)调用fact(n-2),…,fact(1)调用fact(0),内部调用n次,外部调用1次,总共n+1次。