本系列資料由"韜略宏智" 授權(quán)發(fā)布,任何網(wǎng)站不得轉(zhuǎn)載,否則追究法律責(zé)任。
第5題:
編寫函數(shù)jsValue(),它的功能是:求Fibonacci數(shù)列中大于t的最小一個數(shù),結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:
F(0)=0,F(xiàn)(1)=1
F(n)=F(n-1)+F(n-2)
最后調(diào)用函數(shù)writeDat()讀取50個數(shù)據(jù)t,分別得出結(jié)果且把結(jié)果輸出到文件out5.dat中。
本系列資料由"韜略宏智" 授權(quán)發(fā)布,任何網(wǎng)站不得轉(zhuǎn)載,否則追究法律責(zé)任。
第5題:
編寫函數(shù)jsValue(),它的功能是:求Fibonacci數(shù)列中大于t的最小一個數(shù),結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:
F(0)=0,F(xiàn)(1)=1
F(n)=F(n-1)+F(n-2)
最后調(diào)用函數(shù)writeDat()讀取50個數(shù)據(jù)t,分別得出結(jié)果且把結(jié)果輸出到文件out5.dat中。
【答案】
int jsValue(int t)
{
int f1=0,f2=1,fn;
fn=f1+f2;
while(fn<=t)
{
f1=f2;
f2=fn;
fn=f1+f2;
}
return fn;
}
【解析】
考點(diǎn):(1)求解Fibonacci數(shù)列的第n項的值;
(2)查找滿足條件的Fibonacci數(shù)列的第n項值。
本題的解題思路是:從第一項開始,逐個求出Fibonacci數(shù)列的每一項的值并且與給定的數(shù)據(jù)相比較,若找到第一個大于給定的數(shù)據(jù)則將其返回。
程序的流程是:先調(diào)用jsValue(n)函數(shù)處理數(shù)據(jù),由writeDat()函數(shù)將數(shù)據(jù)寫回文件out5.dat中。
在jsValue()函數(shù)中,根據(jù)題目的條件,F(xiàn)ibonacci數(shù)列中每一項的值均為前兩項之和,將Fibonacci數(shù)列的每一項都初始化,然后通過while循環(huán)的條件進(jìn)行判斷,當(dāng)fn<=t時,即第n項的值小于1000,進(jìn)入while循環(huán)體,計算fn的值,每計算一個fn的值就與t相比較一次,直到fn>t即找到大于t的最小的一個數(shù),循環(huán)結(jié)束,該層while循環(huán)的功能就是查找比t大的fn的值,while循環(huán)結(jié)束后,利用return語句返回fn的值,函數(shù)結(jié)束。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |