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

题目

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

A.n

B.n+1

C.n+2

D.n-1


相似考题
参考答案和解析
正确答案:B
解析:n--为先使用后自减所以调用n-1次时的值为0终止调用
更多“设有一个递归算法如下int fact(intn){//n 大于等于0 if(n<=0)return 1; else return n* fact(n-- ”相关问题
  • 第1题:

    12、下面函数是求阶乘的递归函数,请将程序补充完整。 long Fact(int n) { if (n < 0) return 0; if (n==1 || n==0) __________________; else ____________________; }

    A.第4行: return 1 第5行: return n*Fact(n-1)

    B.第4行: return 0 第5行: return n*Fact(n-1)

    C.第4行: return -1 第5行: return (n-1)*Fact(n)

    D.第4行: return 1 第5行: return Fact(n-1)


    n*fact(n-1)或者fact(n-1)*n或者n*fact(-1+n)或者fact(-1+n)*n n*fact(n-1)或者fact(n-1)*n或者n*fact(-1+n)或者fact(-1+n)*n 解析:递归的使用。

  • 第2题:

    求整数n(n>=0)阶乘的算法如下,其时间复杂度是()。 fact(int n) { if(n<=1) return; return n*fact(n-1); }

    A.O(logn)

    B.O(n)

    C.O(nlogn)

    D.O(n*n)


    B

  • 第3题:

    下面函数是求阶乘的递归函数,请将程序补充完整。 long Fact(int n) { if (n < 0) return 0; if (n==1 || n==0) __________________; else ____________________; }

    A.第4行: return 1 第5行: return n*Fact(n-1)

    B.第4行: return 0 第5行: return n*Fact(n-1)

    C.第4行: return -1 第5行: return (n-1)*Fact(n)

    D.第4行: return 1 第5行: return Fact(n-1)


    (1) return 1; (2)return Fact(n-1)*n;

  • 第4题:

    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

  • 第5题:

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

    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次函数。