编写函数jsValue(),它的功能是求Pibonacci数列中大于t的最小的一个数,结果由函数返回,其小 Fibon
编写函数jsValue(),它的功能是求Pibonacci数列中大于t的最小的一个数,结果由函数返回,其小 Fibonacci数列F(n)的定义为:
F(0)=0, F(1)=1 ’
F(n)=F(n-1)+F(n-2)
最后调用函数writeDat(),把结果输出到文件OUT10.DAT中。
例如:当t=1000时,函数值为1597。
注意:部分源程序已给出。
请勿改动主函数main()和写函数WriteDat()的内容。
试题程序:
include
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;
out = fopen("OUT10.DAT", "w");
s = jsValue(1000); 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数列中大于亡的最小的一个数*/ 解析:解答本题的关键是要充分理解题意,只有理解了题意本身的数学过程,才能把数学过程转化为程序逻辑。根据已知数列,我们不难发现:Fibonacci数列中,从第三项开始,每一项都可以拆分为前两项之和。本题要求找到该数列中“大于t的最小的一个数”。这里可以借助一个while循环来依次取数列中的数,直到出现某一项的值大于t,那么这一项就是“大于t的最小的一个数”。注意:在循环体内部,我们用变量f1始终来表示第n项的前面第二项,用变量f2来始终表示第n项的前面第一项。这就实现了变量的活用与巧用。
已知数列a(n)为等比数列,a(4)=16,q=2,数列b(n)前N项和s(n)=1/2*n的平方 数学 2020-05-13 …
1.已知C(7,n+1)-C(7,n)=C(8,n),那么n的值是?2.下列四个式子的值与A(m, 数学 2020-05-14 …
1.已知C(7,n+1)-C(7,n)=C(8,n),那么n的值是?2.下列四个式子的值与A(m, 数学 2020-05-14 …
下列说法错误的是A、小于-1的数的倒数大于其本身B、大于1的倒数小于其本身C、一个数的倒数不能等于 其他 2020-05-14 …
数列{an}的前项n的和为Sn,存在常数A、B、C,使得an+Sn=An^2+Bn+C对任意正整数 其他 2020-05-16 …
几道数列题二㊣小开(317052920) 14:49:021.正实数a,b,c成等差数列,c,a, 其他 2020-05-17 …
已知数列{an}的通项公式为an=2^(n-1)+1则a1Cn^0+a2Cn^1+a3Cn^2+. 数学 2020-07-09 …
1.已知A,B,C为正数,N是正整数,且f(n)=lg[(An+Bn+Cn)/3],求证:2f(n 数学 2020-07-30 …
下列命题中不正确的是A.任意a,b∈R,an=a*n+b,有{an}是等差数列B.存在a,b∈R, 数学 2020-07-30 …
在第二周期中,B、C、N、O四种元素的第一电离能由大到小排列顺序正确的是()A.I1(O)>I1(N 化学 2020-11-01 …