设有一个递归算法如下intfact(intn){//n大于等于0if(nA.n+1B、n-1C、nD、n+2

题目
设有一个递归算法如下intfact(intn){//n大于等于0if(n<=0)return1;elsereturnn*fact(n-1);}则计算fact(n)需要调用该函数的次数为()。

A.n+1

B、n-1

C、n

D、n+2


相似考题
更多“设有一个递归算法如下intfact(intn){//n大于等于0if(n<=0)return1;elsereturnn*fact(n-1);}则计算fact(n)需要调用该函数的次数为()。 ”相关问题
  • 第1题:

    设n的初值为正整数,设计一个递归算法如下:int fact(int n){if(n<=0)return 1;else return(n*fact(n-1));}以下叙述中,正确的是______。

    A.计算fact(n)需要执行n+2次函数调用
    B.计算fact(n)需要执行n+1次函数调用
    C.计算fact(n)需要执行n次函数调用
    D.计算fact(n)需要执行n-1次函数调用

    答案:B
    解析:
    本题考查函数递归调用方面的相关知识。递归法是描述算法的一种强有力的方法,其思想是:将N=n时不能得出解的问题,设法递归(压栈)转化为求n-1,n-2,…的问题,一直到N=0或1的初始情况,由于初始情况的解可以给出,因此,开始层层退栈得到N=2,3,…,n时的解,得到最终结果。本题中,主程序调用fact(n)称为外部调用,其他调用称为内部调用,直到调用fact(0)为止。fact(n)调用fact(n-1),fact(n-1)调用fact(n-2)……fact(1)调用fact(0),内部调用n次,外部调用一次,共n+1次。

  • 第2题:

    5、设有一个递归算法如下 int fact(int n) { //n大于等于0 if(n<=0) return 1; else return n*fact(n-1); } 则计算fact(n)需要调用该函数的次数为()。

    A.n-1

    B.n

    C.n+1

    D.n+2


    t fact(int n) { //n大于等于0

  • 第3题:

    7、下面的递归函数时间复杂度是O(1) int fact(int n) { if(n<=1)return 1; else return n*fact(n-1); }


    错误

  • 第4题:

    有如下递归函数fact(n),分析其时间复杂度为()。 int fact(int n) { if(n<=1) return 1; else return(n*fact(n-1)); }

    A.O(n)

    B.O(1)

    C.O(n^2)

    D.O(logn)


    O(n)

  • 第5题:

    下面的递归函数时间复杂度是O(1) int fact(int n) { if(n<=1)return 1; else return n*fact(n-1); }


    O(n)

  • 第6题:

    【单选题】设有一个递归算法如下

    A.int fact(int n) { //n大于等于0

    B.if(n<=0) return 1;

    C.else return n*fact(n-1); }

    D.算fact(n)需要调用该函数的次数为()。

    E.n+1

    F.n-1

    G.n

    H.n+2


    D。 参考解析:需计算18次函数。