编写函数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;
}