问题
单项选择题
设有一个递归算法如下:
int fact(int n)
if(n<=0)return 1;
else return n*fact(n-1);
下面正确的叙述是()。
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次。