下列程序段 A 与 B 功能等价,请填写程序段 B 中相应语句。 程序段A: int f( int n ) { if(n<=1) return n; else return f(n-1)+f(n-2); } 程序B: int f( int n )______; t0=0; t1=1; t=n; while ( n>1 ) { t = t0+t1 ; t0 = t1; t1 = t; n - -; } return t ; }
举一反三
- 下列程序段A与B功能等价,请填写程序段B中相应语句。程序段A:[br][/br]int f(int n[br][/br]{if(n<=1)[br][/br]return n;[br][/br]else[br][/br]return f(n-1)+f(n-2),[br][/br]}[br][/br]程序B:[br][/br]int f(int n){[input=type:blank,size:4][/input];t0=0,t1=1,t=n;[br][/br]while ([input=type:blank,size:4][/input])[br][/br]t=[input=type:blank,size:4][/input];t0=t1;[br][/br]t1 =t;[br][/br]n--,[br][/br]}[br][/br]return[input=type:blank,size:4][/input]}[br][/br]
- #include int f(int t[],int n); main() {int a[4]={1,2,3,4},s; s=f(a,4); printf(“%d”,s); } int f(int t[],int n) {if (n>0) return t[n-1]+f(t,n-1); else return 0;} 程序运行后的输出结果是
- 下面算法的时间复杂度是 int p1( int n) { t = 1; while( t <= n) t *= 2; return t; }
- 使用递归函数计算n!(n=0,1,2,3,…)的是______ A: fac(int n) if(n==0)return 1; else for(i=1;i<=n;i++)f*=i; return f; } B: fac(int n) { if(n==0‖n==1)return 1; else return n*fac(n-1); } C: fac(int n) {int i=1,f=1; if(n==0)return 1; else do{f*=i;}while(i++<n); return f; } D: fac(int n) {int i=1,f=1; if(n==0)return 1; else while(1<=n)f*=i++; return f;
- 下列程序的输出结果是 。#includeint f(int t[], int n);void main(){int a[4]={1, 2, 3, 4}, s;s=f(a, 4); printf("%d\n", s);}int f(int t[], int n){if(n>;0) return(t[n-1]+f(t,n-1));else return(0);}