[單項(xiàng)選擇題] Fibonacci數(shù)列的規(guī)律是:前2個(gè)數(shù)為1,從第3個(gè)數(shù)開(kāi)始,每個(gè)數(shù)是它前2個(gè)數(shù)之和,即1,1,2,3,5,8,13,21,34,55,89,…
[單項(xiàng)選擇題] Fibonacci數(shù)列的規(guī)律是:前2個(gè)數(shù)為1,從第3個(gè)數(shù)開(kāi)始,每個(gè)數(shù)是它前2個(gè)數(shù)之和,即1,1,2,3,5,8,13,21,34,55,89,…某人編寫(xiě)了下面的函數(shù),判斷大于1的整數(shù)x是否是Fibonaeci數(shù)列中的某個(gè)數(shù),若是,則返回True,否則返回False。
Function Isfab(x As Integer)As Boolean
Dim a As Integer,b As Integer,c As Integer,flag As Boolean
fIag=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
測(cè)試時(shí)發(fā)現(xiàn)對(duì)于所有正整數(shù)x,函數(shù)都返回False,程序需要修改。下面的修改方案中正確的是( )
A.把a(bǔ)=b與b=C的位置互換
B.把c=a+b移到b=c之后
C.把Do while x<b改為Do While x>b
D.把If x=b Then flag=True改為If x=a Then flag=True
正確答案:C
參考解析:本題是利用While循環(huán)求斐波拉希契數(shù)列,將求的值與x進(jìn)行比對(duì),若x是數(shù)列中的值,則返回True,否則將返回False。由于循環(huán)條件為x<b,a與b的初始值為1,而x是整數(shù),所以x不可能小于b,所以循環(huán)不執(zhí)行,如果需要執(zhí)行,只需改動(dòng)While中的條件判斷,所以答案選C。
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。