请编写Python程序完成以下要求: 编写函数,求斐波那契数列第n项的值,F1=1,F2=1,Fn=Fn-1+Fn-2。
第1题:
计算斐波那契数列第n项的函数定义如下: intfib(intn){ if(n==0)returnl; elseif(n==l)return2: elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib(2),函数fib被调用的次数是( )。
A.1
B.2
C.3
D.4
第2题:
阅读以下说明和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中错误所在行修改正确后的完整代码。
第3题:
下列给定程序中函数fun的功能是。用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1、1、2、3、5、8、l3、21、……
例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。
第4题:
请在函数proc()的横线上填写若干表达式,使从键盘上输入一个整数n,输出斐波那契数列的前n个数。斐波那契数列是一个整数数列,该数列自第3项开始,每个数等于前面两个数之和,即0,1,1,2,3,5,8,13,21,34,55,…
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
【1】n==0【2】n==1【3】proc(n-1)+proc(n-2)
【解析】由斐波那契数列的定义可知,该数列中有两个特殊项。当n为0时,其值为0;当n为1时,其值为1。因此,【1】处填“n==0”;【2】处填“n==1”;当n为其他值时,为前两项的和,因此,[3]处填“proc(n-1)+proc(n-2)”。
第5题:
下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、…… 例如,若给n输入7,则该项的斐波拉契数值为13。 请改正程序中的错误,使它能得出正确结果。 注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。
第6题:
数据结构与算法里,斐波那契数列的第5项的值是()。
第7题:
自然界中存在丰富的斐波那契数列,斐波那契数列来源于一个古老的数学问题,是由12世纪意大利数学家斐波那契在其书中所产生的。斐波那契数列和黄金分割的关系是?()
第8题:
斐波那契数列的第12项是()
第9题:
斐波那契数列的第一项是(),第七项是()。
第10题:
fun(n)+fun(n-1)
fun(n-1)+fun(n-2)
fun(n-1)*fun(n-2)
fun(n-2)+fun(n-3)
第11题:
求1-n的和
求n的阶乘
斐波那契数列
n^k(^表示幂)
第12题:
143.0
144.0
145.0
146.0
第13题:
下列给定程序中,函数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);
}
第14题:
计算斐波那契数列第n项的函数定义如下: intfib(intn){ if.(n==0)return1; elseif(n==1)return2: elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib(2),函数fib被调用的次数是( )。
A.1
B.2
C.3
D.4
第15题:
请编写函数proc(),它的功能是计算: s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5 在C语言中可调用log(n)函数求1n(n)。 例如,若n1的值为30,则proc()函数值为8.640500。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。 试题程序:
第16题:
请编写函数proc(),它的功能是求Fibonacci数列中小于n的最大的一个数,结果由函数返回。
Fibonacci数列F(n)的定义为
F(0)=O,F(1)=1
F(n)=F(n-1)+F(n-2)
例如,n=500时,函数值为377。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填写所编写的若干语句。
试题程序:
【解析】由题目中所给的公式可知,Fibonacci数列的第n项为第n-1项和第n-2项的和。要求Fibonacci数列中小于n的最大的一个数。首先根据公式求出Fibonacci数列的第n项的值,当第i项大于n,则返回第i-1项的值。
第17题:
试题四(共 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 项(n>40)的速度并不相同,请指出速度慢的函数名,并简要说明原因。
第18题:
汉诺塔问题可以用递归解决,以下也可用递归实现的是()
第19题:
卢卡斯数列是斐波那契数列的推广,其前两项是()
第20题:
在1,1,2,3,5,8,13,21,34……这一斐波那契数列中,第12项是()。
第21题:
黄金比例是斐波那契数列中的一项
斐波那契数列相邻两项的比例逐渐逼近黄金比例
黄金分割是指用斐波那契数列对一个量进行分割
黄金比例是斐波那契数列的别名
第22题:
1
2
5
8
第23题:
7.0
14.0
21.0
28.0
第24题:
1、2
1、1
2、3
1、3