A-A+

设有一个递归算法如下: int fact(int n){ if(n<=0)return 1;

2022-08-06 00:27:01 问答库 阅读 173 次

问题详情

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

考点:算法