编写函数jsvalue(),其功能是:求Fibonacci数列中大于t的最小的一个数,结果由该函数返回。其中,Fibo
编写函数jsvalue(),其功能是:求Fibonacci数列中大于t的最小的一个数,结果由该函数返回。其中,Fibonacci数列F(n)的定义如下。F(0)=0, F(1)=1F(n)=F(n-1)+F(n-2)最后,调用函数writeDat()读取10个数据t,分别得出结果,并把结果输出到文件out.dat中。例如:当t=1000时,函数值为1597。部分源程序已给出。请勿改动主函数main()和写函数writeDat()的内容。#include <stdio.h>int jsValue(int t){ }void writeDat(){ FILE *in, *out; int i, n, s; in = fopen("in.dat", "r"); out = fopen("out.dat", "w"); for (i=0; i<50; i++) { fscanf(in, "%d,", &n); s = jsValue(n); fprintf(out, "%d\n", s); } fclose(in); fclose(out);}main(){ int n; n = 1000; printf("t=%d,f=%d\n", n, jsValue(n)); writeDat();}
【解析及答案】
本题属于按条件查找类型的题目,考核的知识点为:求解Fibonacci数列的第n项的值;查找满足条件的Fibonacci数列的第n项的值。
本题的解题思路为:从第1项开始逐个求出Fibonacci数列的每一项的值,并且将其与给定的数据相比较,若找到第1个大于给定数据的值则将其返回。程序的流程为:调用jsvalue(n)函数处理数据,由writeDat()函数将数据写回到文件out.dat中。在jsvalue()函数中,根据题目给出的条件,Fibonacci数列中的每一项的值均为前两项之和。将Fibonacci数列的每一项的都初始化,然后通过while循环的条件进行判断:当Fn≤t,即第n项的值小于1000时,进入while循环体,计算Fn的值,每计算一个Fn的值就与t比较一次,直到fn>t,即找到大于t的最小的一个数时,循环结束。该while循环的功能就是查找比t大的Fn的值。while循环结束后,利用return语句返回Fn的值,函数结束。
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;
}
下列写法中正确的是()A.∅={∅}B.∅⊆{0}C.∅={0}D.0∈∅ 其他 2020-05-13 …
英语选择题英语句子的第一个首字母要()a小写b大写c顶格d写印刷体下面四组字母中,含有相同音素的是 其他 2020-05-15 …
下列写法中正确的是()A.直线a,b相交于点nB.直线AB,CD相交于点MC.直线ab,cd相交于 数学 2020-05-20 …
下列写法中正确的是()A.直线a,b相交于点nB.直线AB,CD相交于点MC.直线ab,cd相交于 数学 2020-05-21 …
从下列诗人中选取一个诗人写对联,要求所写内容与所选诗人相符诗人:屈原陶渊明苏轼李清照上句从下列诗人 语文 2020-06-09 …
下列各项中,符合票据和结算凭证填写要求的是().下列各项中,符合票据和结算凭证填写要求的是()。A 其他 2020-06-09 …
从下列词语中至少选用两个词语,写一段描写环境的话.(80字以内)苏醒神往点缀静谧津津有味从下列词语 语文 2020-06-27 …
在下列词语中至少选用两个词语,并且至少用上一种常修辞写法,写一段描写景物的话,多姿多彩玲珑剔透.. 语文 2020-06-29 …
我会填三个连续奇数的和是165,这三个数中最小的是()我会选把125分解质因数,下列写法中()是正 数学 2020-07-31 …
写出“晚”在下列句子中的意思(写在括号里)今天晚上,我还有一篇作文要写.长大了才学,不是太晚了吗?写 语文 2020-11-15 …