3、下面程序段的时间复杂度为 。 fact(int i) { if (n = 1) return(1); else return (n*fact(n-1)); }A.O(1)B.O(n)C.O(n^2)D.以上都不对

3、下面程序段的时间复杂度为 。 fact(int i) { if (n <= 1) return(1); else return (n*fact(n-1)); }

A.O(1)

B.O(n)

C.O(n^2)

D.以上都不对


参考答案和解析
A

相关考题:

阅读下面程序:include long fib(int n){if (n>2)return (fib(n-1) + fib(n-2));else 阅读下面程序:include <iostream.h>long fib(int n){if (n>2)return (fib(n-1) + fib(n-2));elsereturn (2);}void main(){cout<<fib(3)<<end1;}则该程序的输出结果应该是【 】。

下面算法的时间复杂度为(34)。 int f(unsigned int n){ if(n=0||n==1)return 1; else return n*f(n-1); }A.O(1)B.O(n)C.O(n2)D.O(n!)

有以下程序 int f(int n) { if(n==1)return 1; else return f(n-1)+1;} main() { int i,j=0; for(i=1;i<3;i++)j+=f(i); printf("%d\n",j);} 程序运行后的输出结果是A.4B.3C.2D.1

有如下程序:includelong fib(int n){if(n>2)return(fib(n-1)+fib(n-2)); else return( 有如下程序: #include <stdio.h> long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是( )。A.2B.4C.6D.8

有以下程序:includeintf(intn)} if(n==1)return 1;else return f(n-1)+1;}main(){int 有以下程序: #include <stdio.h> intf(intn) } if(n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1; i<3; i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )。A.4B.3C.2D.1

有以下程序()。includeint f(int n){if(n==1)return 1;elsereturn f(n-1)+1;}void m 有以下程序( )。 #include<iostream.h> int f(int n) { if(n==1)return 1; else return f(n-1)+1; } void main() { int i,j=-; for(i=1;i<3;i++) j+=f(i); cout<<j<<endl; } 程序运行后输出结果是( )。A.4B.3C.2D.1

有以下程序includeint f(int n){if(n==1)return 1:else return f(n-1)+1;}void mai 有以下程序 #include<iostream.h> int f(int n) {if(n==1)return 1: else return f(n-1)+1;} void main() {int i,j=0; for(i=1;i<3;i++):j+=f(i); cout<<j;} 程序运行后的输出结果是( )。A.4B.3C.2D.1

设有一个递归算法如下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 f(int n){ if(n==1)return 1; else return f(n-1)+1;}main(){ int i,j=0; for(i=1;i3;i++)j+=f(i); printf("%d\n",j); }程序的运行结果是A.4 B.3C.2 D.1

有以下程序int f(int n){ if(n==1 return 1; else return f(n-1)+1;}main(){ int i,j=0; for(i=1;i3;i++) j+=f(i); printf("%d\n",j);}程序运行后的输出结果是A.4 B.3 C.2 D.1

设有一个递归算法如下 im 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次函数调用

有以下程序includeint f(int n){if(n==1 )return 1;else return f(n-1 )+ 1;}void 有以下程序#include<iostream.h>int f(int n){if(n==1 )return 1;else return f(n-1 )+ 1;}void main() {int i,j=0;for(i=1 ;i<3;i++) j+=f(i);cout<<j<<end1;}程序运行后的输出结果是( )。A.4B.3C.2D.1

有以下程序()。 include int f(int n) { if(n==1)return l; else return f(n-1)+1; 有以下程序( )。 #include<iostream.h> int f(int n) { if(n==1)return l; else return f(n-1)+1; } void main() { int i,j=-; for(i=1;i<3;i++) j+=f(i); cout<j<<endl; } 程序运行后输出结果是( )。A.4B.3C.2D.1

有以下程序 include int f(int n) {if(n==1)return1; else return f(n-1)+1} voidm 有以下程序 #include<iostream.h> int f(int n) {if(n==1)return1; else return f(n-1)+1} voidmain() {int i,j=0; for(i=l i<3;i++)=i+=f(i); cout<<j;} 程序运行后的输出结果是( )。A.4B.3C.2D.1

计算N!的递归算法如下,求解该算法的时间复杂度时,只考虑相乘操作,则算法的计算时间T(n)的递推关系式为(55);对应时间复杂度为(56)。int Factorial (int n){//计算n!if(n<=1)return 1;else return n * Factorial(n-1);}(62)A.T(n)=T(n-1)+1B.T(n)=T(n-1)C.T(n)=2T(n-1)+1D.T(n)=2T(n-1)-1

下列程序的输出结果为( )。 int fun(int n){ if(n==0)return 1; else return n*fun(n-1): return 0; } void main() { eout<<func(4)<<endl;}A.1B.10C.24D.11

能保证对所有的参数能够结束的递归函数是A.int f(int n){if(n<1)return 1;else return n*f(n+1);}B.int f(int n){if(n>1)return 1;else return n*f(n-1);}C.int f(int n){if(abs(n)<1)return 1;else return n*f(n/2);}D.int f(int n){if(n>1)return 1;else return n*f(n*2);)

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

有以下程序: #include 〈iestream〉 using namespace std; int f(int n) { if(n==1) return 1; else return f(n-1)+1; } int main() { int i,j=0; for(i=1;i3;i++) j+=f(i); coutA.4B.3C.2D.1

下面 ______ 是正确的递归函数,它保证对所有的参数能够结束。A.int f(int n){ if(n<1) return 1; else return n*f(n+1); }B.int f(int n){ if(n>1) return 1; else return n*f(n-1); }C.int f(int n){ if(abs(n)<1) return 1; else return n*f(n/2); }D.int f(int n){ if(n>1) return 1; else return n*f(n*2); }

下列函数中,哪项是正确的递归函数( )。A int Fun(int n){if(n<1) return 1;else return n*Fun(n+1);}B) int Fun(ira n){if(abs(n)<1) return 1;else return n*Fun(n/2);}C) int Fun(int n){if(n>1) return 1;else return n*Fun(n*2)1}D) int Fun(int n){if(n>1) return 1;else retun n*Fun(n-1);}A.AB.BC.CD.D

有以下程序 int f(int n) { if (n==l) return 1; else return f(n-1)+1; } main () { int i,j=0; for(i=i;i<3;i++) j+=f(i); printf {"%d\n", j ); } 程序运行后的输出结果是A.4B.3C.2D.1

有以下程序 include int f(iht n) { if(n==1) return 1; else return f(n-1)+ 有以下程序 #include<iostream.h> int f(iht n) { if(n==1) return 1; else return f(n-1)+1;} void main( ) { iht i,j=0; for(i=1;i<3;i++)j+=f(i); cout < < j;} 程序运行后的输出结果是A.4B.3C.2D.1

有以下程序 int f(int n) { if(n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1;i<5;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )A.15B.10C.6D.3

有以下程序: int f(int n) { if (n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=i;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )。A.4B.3C.2D.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次函数调用

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

单选题设有一个递归算法如下: int fact(int n) {  //n大于等于0               if(n=0) return 1;               else return n*fact(n-1);        }  则计算fact(n)需要调用该函数的次数为()A n+1B n-1C nD n+2