用递归函数求解斐波那契序列,在划线处填上正确语句。 int fib(number){ if (__________ || number == 2) return 1; else: return fib(number - 1) + fib(number - 2);A.number == 1B.number == 0C.number == 3D.number != 1

用递归函数求解斐波那契序列,在划线处填上正确语句。 int fib(number){ if (__________ || number == 2) return 1; else: return fib(number - 1) + fib(number - 2);

A.number == 1

B.number == 0

C.number == 3

D.number != 1


参考答案和解析
1、循环def fb1f(n):if nreturn 1f1b=1f2b=1i=3while(if3b=f1b+f2bf1b=f2bf2b=f3bi=i+1return f3b2、递归def fb2f(n):if nreturn 1else:return fb2f(n-1)+fb2f(n-2)3、数组def fb3f(n):x=[1,1]i=3while(ix.append(x[-1]+x[-2])i=i+1return x[-1]

相关考题:

已知递归函数f 的定义如下:int f (int n){If(n=1)return 1;//递归结束情况else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是( )。

以下程序运行结果是【8】 。long fib (int g){ switch (g){ case 0∶return 0;case 1∶case2∶return 1;}return (fib (g-1)+fib(g-2));}main (){ long k;k=fib (5);printf ("k=%(d\n)",k);}

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

有以下面程序: include using namespace std; long fib(int n) { if (n>2)return (fi 有以下面程序:include <iostream>using namespace std;long fib(int n){if (n>2)return (fib(n-1)+fib(n-2));elsereturn 2;}int main(){cout<<fib(3)<<endl;return 0;}则该程序的输出结果应该是【 】。

阅读下面程序: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;}则该程序的输出结果应该是【 】。

有下列程序,在横线添加;includeusing namespace std;class TestClass{public:TestCla 有下列程序,在横线添加; #include<iostream> using namespace std; class TestClass { public: TestClass (int n){number=n;} ______//拷贝构造函数 ~TestClass(){} private: int number; }; TestClass fun(TestClass p) { TestClass temp(P); return temp; } int main() { TestClsss obj1(10),obj2(0); TestClass obj3(obj1); obj2=fun(obj3); return 0; }A.TestClass(TestClass other){number=other.number;}B.TestClass(TestClass other){number=other.number;}C.TestClass(TestClass other){number;}D.TestClass(other){number=other.number;}

( 21 )计算斐波那契数列第 n 项的函数定义如下:Int fib(int n){if (n == 0) return 1;else if (n == 1) return 2;else return fib(n-1)+fib(n-2);}若执行函数调用表达式 fib(2) ,函数 fib 被调用的次数是A ) 1B ) 2C ) 3D ) 4

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

计算斐波那契数列第n项的函数定义如下: intfib(intn){ if(n==0)returnl; elseif(n==l)return2: elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib(2),函数fib被调用的次数是( )。A.1B.2C.3D.4

下列给定程序中,函数fun()的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波`拉契级数序列为1, 1,2,3,5,8,13,21,……例如,若给n输入7,该项的斐波拉契级数值为13。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>long fun(int g){/*************found**************/switch(g);{case 0:return 0;switch(g)case 1; case 2:return 1;}return (fun(g-1)+fun(g-2));}main(){long fib; int n;printf("Input n:");scanf("%d",n);printf("n-%d\n",n);fib=fun(n);printf("fib=%d\D\n",fib);}

阅读以下说明和C函数代码,回答问题并将解答写在对应栏内。【说明】著名的菲波那契数列定义式为f1=1 f2=1 fn=fn-1+fn-2 (n=3,4,…)因此,从第1项开始的该数列为1,1,2,3,5,8,13,21,…。函数fibl和fib2分别用递归方式和迭代方式求解菲波那契数列的第n项(调用fib1、fib2时可确保参数n获得一个正整数)。【C函数代码】函数fib1和fib2存在错误,只需分别修改其中的一行代码即可改正错误。(1)函数fib1不能通过编译,请写出fib1中错误所在行修改正确后的完整代码。(2)函数fib2在n≤2时不能获得正确结果,请写出fib2中错误所在行修改正确后的完整代码。

有如下程序:includelong fib(int n){if(n>2)return(fib(n-1)+fib(n-2)); else retu 有如下程序: #include<iostream.h> long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2);} void main( ) {cout<<fib(3);} 该程序的输出结果是A.2B.4C.6D.8

计算斐波那契数列第n项的函数定义如下:int fib(int n){if(n==0) return 1;else if(n==1)return 2;else return fib(n-1)+ilb(n-2);}若执行函数调用表达式fib(2),函数fib被调用的次数是A.1B.2C.3D.4

有如下程序:includelong 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) ) ; else return(2) ;} void main( ) { cout < < nb(3) ;} 该程序的输出结果是A.2B.4C.6D.8

有如下程序: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

计算斐波那契数列第n项的函数定义如下: intfib(intn){ if.(n==0)return1; elseif(n==1)return2: elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib(2),函数fib被调用的次数是( )。A.1B.2C.3D.4

有如下程序 long fib(int n) { if(n>2)return(fib(n-1)-fib(n-2)); else return(1); } main() { printf("%d\n",fib(5)); }该程序的输出结果是______。A.-3B.-2C.-1D.0

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

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。【函数】main ( ){int number[10];input (number);max min (number);output (number);}input (number)int number[10];{int i;for ( i=0;i<9;i++ )scanf ( "%d,",number[i] );scanf ( "%d",number[9] );}max_min ( array )int array[10];{int *max,*min,k,1;int *p,*arr_end;arr end=(1);max=min=array;for ( p=(2);p<arr_end;p++ )if((3)) max=p;else if ( *p<*min ) min=p;(4);l=*min;(5);array[0]=1;1=*p;*p=array[9];array[9]=k;k=*p;return;}output ( array )int array[10];{ int *p;for ( p=array;p<array+9;p++ )printf ( "%d,",*p );printf ( "%d\n",array[9] );}

有以下程序include using namespace std;class MyClass{public:MyClass(int n) { num 有以下程序#include <iostream>using namespace std;class MyClass{public: MyClass(int n) { number=n; } //拷贝的构造函数 MyClass(MyClass other) {number=other. number; } ~MyClass() { }private: int number;};MyClass fun(MyClass p){ MyClass temp(p); return temp;}int main() MyClass obj 1 (10), obj 2(0); MyClass obi 3 (obj 1); obj2=fun(obj3); return 0;}程序执行时,MyClass 类的拷贝构造函数被调用的次数是( )。A.5B.4C.3D.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

有程序: 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

有以下程序includeusing namespace std;class MyClass{public:MyClass(int n){number 有以下程序 #include<iostream> using namespace std; class MyClass { public: MyClass(int n){number =n; } //拷贝构造函数 MyClass(MyClass other) {number=other.number;} ~MyClass() {} private: int number; }; MyClass fun(MyClass p) { MyClass temp(p); return temp; } int main() { MyClass Obj1(10),obj2(0); MyClass obj3(obj1); obj2=fun(obj3); return 0; } 程序执行时,MyClass类的拷贝构造函数被调用的次数是A.5B.4C.3D.2

有如下程序:includeusing namespace std;long fib(int n){ if(n>2) return(fib(n-1)+ 有如下程序: #include<iostream> using namespace std; long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(n); } void main() { int i; cout<<"请输入一个整数:"; cin>>i;cout<<endl; cout<<fib(i)<<endl; { 当输入4、2时,该程序的输出结果是( )。A.5B.4C.5D.6 1 2 2 2

试题四(共 15 分)阅读以下说明和 C 函数代码,回答问题并将解答写在答题纸的对应栏内。[说明]著名的菲波那契数列定义式为f1 = 1 f2 = 1 fn = fn-1 + fn-2 (n = 3,4,…)因此,从第 1 项开始的该数列为 1,1,2,3,5,8,13,21,…。函数 fib1 和 fib2 分别用递归方式和迭代方式求解菲波那契数列的第 n 项(调用 fib1、fib2 时可确保参数 n 获得一个正整数) 。[C函数代码][问题 1](6 分)函数 fib1 和 fib2 存在错误,只需分别修改其中的一行代码即可改正错误。(1)函数 fib1 不能通过编译,请写出 fib1 中错误所在行修改正确后的完整代码;(2)函数 fib2 在n≤2 时不能获得正确结果,请写出 fib2 中错误所在行修改正确后的完整代码。[问题 2](3 分)将函数 fib1 和 fib2 改正后进行测试,发现前 46 项都正确,而第 47 项的值是一个负数,请说明原因。[问题 3](6 分)函数 fib1、fib2 求得菲波那契数列第 n 项(n40)的速度并不相同,请指出速度慢的函数名,并简要说明原因。

有以下程序 include using namespace std; long fib(int n) { if(n>2) return(fib(n-1 有以下程序include<iostream>using namespace std;long fib(int n){if(n>2)return(fib(n-1)+fib(n-2));elsereturn 2;}int main( ){cout<<fib(3)<<endl;return 0;}则该程序的输出结果应该是______。

有如下程序 long fib(int n) { if(n2) return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%ld/n",fib(3)); } 该程序的输出结果是()A、2B、4C、6D、8

单选题有如下程序 long fib(int n) { if(n2) return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%ld/n",fib(3)); } 该程序的输出结果是()A2B4C6D8