2016計算機三級網(wǎng)絡(luò)技術(shù)上機題及答案
編寫函數(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(),把結(jié)果輸出到文件OUT80.DAT中。
例如:當t = 1000時,函數(shù)值為1597。
注意:部分源程序已給出。
請勿改動主函數(shù)main()和寫函數(shù)WriteDat()的內(nèi)容。
試題程序:
#include
void writeDat();
int jsValue(int t)
{
}
void main()
{
int n;
n=1000;
printf("n=%d, f=%dn", n, jsValue(n));
writeDat();
}
void writeDat()
{
FILE *out;
int s;
out = fopen("OUT80.DAT", "w");
s = jsValue(1000); printf("%d",s);
fprintf(out, "%dn", s);
fclose(out);
}
【答案】
int jsValue(int t)
{
int f1=0,f2=1,fn; /*定義變量存儲Fibonacci數(shù),初始化數(shù)列的前兩項*/
fn=f1+f2; /*計算下一個Fibonacci數(shù)*/
while(fn<=t)>
{
f1=f2;
f2=fn;
fn=f1+f2;
}
return fn; /*返回Fibonacci數(shù)列中大于t的最小的一個數(shù)*/
}
【解析】解答本題的關(guān)鍵是要充分理解題意,只有理解了題意本身的數(shù)學(xué)過程,才能把數(shù)學(xué)過程轉(zhuǎn)化為程序邏輯。根據(jù)已知數(shù)列,我們不難發(fā)現(xiàn):在 Fibonacci數(shù)列中,從第三項開始,每一項都可以拆分為前兩項之和。本題要求找到該數(shù)列中"大于t的最小的一個數(shù)"。這里可以借助一個while循環(huán)來依次求數(shù)列中的數(shù),直到出現(xiàn)某一項的值大于t,那么這一項就是"大于t的最小的一個數(shù)"。
【計算機三級網(wǎng)絡(luò)技術(shù)上機題及答案】相關(guān)文章:
2016最新三級網(wǎng)絡(luò)技術(shù)上機題及答案05-06
2016年三級網(wǎng)絡(luò)技術(shù)上機題及答案02-28
2017計算機三級《網(wǎng)絡(luò)技術(shù)》上機操作題及答案07-20
2016計算機考試三級網(wǎng)絡(luò)技術(shù)上機題及答案03-07
計算機三級網(wǎng)絡(luò)技術(shù)上機題庫及答案05-13
計算機等級考試三級網(wǎng)絡(luò)技術(shù)上機題02-02
2017計算機三級網(wǎng)絡(luò)技術(shù)上機特訓(xùn)題08-13