编写函数,isValue(),它的功能是求Fibonacci数列中大于t的最小的一个数,结果由函数返回,其中 Fibo
编写函数,isValue(),它的功能是求Fibonacci数列中大于t的最小的一个数,结果由函数返回,其中 Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后调用函数writeDat(),把结果输出到文件OUTl0.DAT中。
例如:当t=1000时,函数值为1597。
注意:部分源程序已给出。
请勿改动主函数main()和写函数WriteDat()的内容。
include <stdio.h>
int jsValue(int t)
{
}
main ( )
{
int n;
n=1000;
printf("n=%d, f=%d\n", n, jsValue(n));
writeDat ();
}
writeDat ()
{
FILE *in, *out;
int n, s;
ut = fopen ("OUT10.DAT", "w");
s = jsValue(1O00); printf("% d",s);
fprintf(out, "%d\n", s);
fclose (out);
}
int jsValue(int t) { int f1=0,f2=1,fn; fn=f1+f2; while(fn=t) {f1=f2;f2=fn;fn=f1+f2;) /*如果当前的Fibonacci数不大于t, 则计算下一个Fibonacci数*/ return fn; /*返回Fibonacci数列中大于t的最小的一个数*/ } 解析:解答本题的关键是要充分理解题意,只有理解了题意本身的数学过程,才能把数学过程转化为程序逻辑。根据已知数列,我们不难发现:Fibonacci数列中,从第三项开始,每一项都可以拆分为前两项之和。本题要求找到该数列中“大于t的最小的一个数”。这里可以借助一个while循环来依次取数列中的数,直到出现某一项的值大于t,那么这一项就是“大于t的最小的一个数”。注意:在循环体内部,我们用变量f1始终来表示第n项的前面第二项,用变量侵来始终表示第n项的前面第一项。这就实现了变量的活用与巧用。
一种商品,先九折出售,在提价10%,最后的售价()原价.A,大于B,等于C,一种商品,先九折出售,在 数学 2020-03-31 …
2道坑爹的数学题啊1、小明1/8小时步行3/4千米,那么步行一千米要多少小时?(求列式与过程)2、 其他 2020-04-23 …
去年4月18日起,我国部分车次的旅客列车再次提速,北京到某市全线长1120千米,车速每小时提高10 数学 2020-04-25 …
请回答下列问题,要求列算式.两地相距500千米,甲乙两列火车由两地相向而行.若同时出发,则5小时后 数学 2020-04-27 …
某船从甲港出发每小时行12km,3小时到乙港,返回时由於逆水多用2小时,求该船往返的平均速度某船从 数学 2020-06-03 …
用以下4个小标题编成一个英语小故事求大神帮助1.Workedinafactory2.Fellasle 英语 2020-11-21 …
列车在水平铁路上行驶,在50秒内的速度由30千米每小时均匀增加到54千米每小时,列车的质量是1000 物理 2020-12-13 …
列车在机车的牵引下沿平直铁轨匀加速行驶,在t=100s内速度由v0=5.0m/s增加到vt=15.0 其他 2020-12-13 …
列车在机车的牵引下沿平直铁轨匀加速行驶,在100s内速度由5.0m/s增加到15.0m/s.(1)求 其他 2020-12-13 …
列车在机车的牵引下沿平直铁轨匀加速行驶,在100s内速度由5.0m/s增加到15.0m/s.(1)求 其他 2020-12-13 …