Fibonacci数列的规律是:前2个数为1,从第3个数开始,每个数是它前2个数之和,即1,1,2,3,5,8,13,2l,34,55,89,…某人编写了下面的函数,判断大于1的整数X是否是Fibonacci数列中的某个数,若是,则返回True,否则返回F

admin2010-11-02  37

问题 Fibonacci数列的规律是:前2个数为1,从第3个数开始,每个数是它前2个数之和,即1,1,2,3,5,8,13,2l,34,55,89,…某人编写了下面的函数,判断大于1的整数X是否是Fibonacci数列中的某个数,若是,则返回True,否则返回False。
    Function Isfab(x As Integer)As Boolean
    Dim a As Integer,b As Integer,c As Integer,flag As Boolean
    flag=False
    a=1:b=1
    Do While X      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

解析 本题中程序思路是利用for循环求得斐波那契数列,然后和x比对,若x是斐波那契数列中的值,则返回布尔值True,若不是则返回false。题目源程序中循环条件是x
转载请注明原文地址:https://jikaoti.com/ti/rog0FFFM
0

最新回复(0)