題目20(無憂id 80 Fibonacci數(shù)列題)
編寫函數(shù)jsValue,它的功能是:求Fibonacci數(shù)列中大于t的最小的一個數(shù),結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后調(diào)用函數(shù)writeDat()讀取50個數(shù)據(jù)t,分別得出結(jié)果且把結(jié)果輸出到文件out.dat中。
例如:當(dāng)t=1000時(shí),函數(shù)值為:1597。
部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。
#include
int jsValue(int t)
{ int f0=0,f1=1,fn;
fn=f0+f1;
while(fn<=t)
{ f0=f1;
f1=fn;
fn=f0+f1;
}
return fn;
}
main()
{
int n;
n=1000;
printf("n=%d,f=%d\n",n,jsValue(n));
writeDat();
}
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);
printf("%d\n",s);
fprintf(out,"%d\n",s);
}
fclose(in);
fclose(out);
}
編寫函數(shù)jsValue,它的功能是:求Fibonacci數(shù)列中大于t的最小的一個數(shù),結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后調(diào)用函數(shù)writeDat()讀取50個數(shù)據(jù)t,分別得出結(jié)果且把結(jié)果輸出到文件out.dat中。
例如:當(dāng)t=1000時(shí),函數(shù)值為:1597。
部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。
#include
int jsValue(int t)
{ int f0=0,f1=1,fn;
fn=f0+f1;
while(fn<=t)
{ f0=f1;
f1=fn;
fn=f0+f1;
}
return fn;
}
main()
{
int n;
n=1000;
printf("n=%d,f=%d\n",n,jsValue(n));
writeDat();
}
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);
printf("%d\n",s);
fprintf(out,"%d\n",s);
}
fclose(in);
fclose(out);
}