问题 单项选择题

设有一个递归算法如下:
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次。

问答题 简答题
单项选择题