问题 问答题

编写函数jsValue(),其功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后调用函数writeDat()从in.dat中读取50个数据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();

答案

参考答案:

int jsVahe(int t)

int fA=0,fB=A,fn; /*取fA和fB的初值分别为0和A*/

fn=fA+fB; /*初始化fn为fA+fB*/

while(fn<=t) /*循环计算fn的值,直到fn大于t*/

{ /*让fA和fB分别等于它们对应Fibonacei数列的下一个值*/

fA=fB;

fB=fn;

fn=fA+fB; /*计算出一个新的值到fn*/

}

return fn;

}

填空题
单项选择题