三、編程題
請編寫函數(shù)fun,它的功能是:求Fibonacci數(shù)列中大于t(t>3)的最小的一個數(shù),結(jié)果由函數(shù)返回.其中Fibonacci數(shù)列F(n)的定義為:
F(0)=0,F(1)=1
F()=F(n-1)+F(n-2)
假如:當(dāng) t=1000時, 函數(shù)值為1567.
請勿改動主函數(shù)動main其它的函數(shù)中的任何內(nèi)容,僅在函數(shù)fun花括號中填入所編寫的若干語句.
#include
#include
#include
int fun (int t)
{
}
main()
{
int n;
FILE *out;
n=1000;
printf("n=%d,f=%d\n",n,fun(n));
out=fopen ("out.dat", "w");
for (n = 500; n < 3000; n+=500)
fprintf(out, "%d\n", fun(n));
fclose (out );
}
參考答案:
int fun(int t)
{
int a=1,b=1,c=0,I;
for(i=4;i<=t;i++)
{
if(c
{
c=a+b;
a=b;
b=c;
}
else
break;
}
return c:
}