设有一个递归算法如下: int X(int n); if(n<=3)return 1; else return X(n一2)+X(n一4)+1; 试问计算X(X(5))时需要调用( )次X函数。

admin2019-02-24  33

问题 设有一个递归算法如下:
int X(int n);
    if(n<=3)return 1;
    else return X(n一2)+X(n一4)+1;
    试问计算X(X(5))时需要调用(    )次X函数。

选项 A、2
B、3
C、4
D、5

答案C

解析 该递归算法的定义为:

    即当参数值小于等于3的时候,整个流程调用X(n)一次,而当参数值大于3的时候,整个流程调用X(n)至少3次(第一次即本次调用,第二次为X(n—2),第三次为X(n—4))。
  X(X(5))递归调用的执行结果如下:

    一个方块代表一次调用,一共调用了4次。
转载请注明原文地址:https://kaotiyun.com/show/5oCi777K
0

相关试题推荐
最新回复(0)