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