A-A+
Fibonacci数列的规律是:前2个数为1 从第3个数开始 每个数是它前2个数之和 即1
问题详情
Fibonacci数列的规律是:前2个数为1,从第3个数开始,每个数是它前2个数之和,即1,1,2,3,5,8,13,21,34,55,89,…某人编写了下面的函数,判断大于1的整数X是否是Fibonacci数列中的某个数,若是,则返回True,否则返回False。
Function Isfab(x As Integer)As Boolean
Dim ii As Integer,b As Integer,C As Integer,flag As Boolean
flag=False
a=1:b=1
Do While x<b
c=a+b
a=b
b=c
If x=b Then flag=True
Loop
Isfab=flag
End Function
测试时发现对于所有正整数X,函数都返回False,程序需要修改。下面的修改方案中正确的是()。
A.把a=b与b=C的位置互换
B.把c=a+b移到b=C之后
C.把Do While xb
D.把If x=b Then flag=True改为If x=a Then flag True请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:C
C。【解析】本题中程序思路是利用for循环求得斐波那契数列,然后和x比对,若x是斐波那契数列中的值,则返回布尔值Frue,若不是则返回false。题目源程序中循环条件是x<b,又因为a、b初始值都是1,而X是正整数,所以不论X取何值,循环都不会执行。