编写函数,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项的前面第一项。这就实现了变量的活用与巧用。
血红素中含有C、O、N、Fe五种元素.回答下列问题:(1)C、N、O、H四种元素中电负性最小的是( 化学 2020-05-14 …
(15分)血红素中含有C、O、N、Fe五种元素。回答下列问题:⑴C、N、O、H四种元素中电负性最小 化学 2020-05-14 …
求证:(1)A(n+1,n+1)-A(n,n)=n^2A(n-1,n-1);(2)C(m,n+1) 数学 2020-06-03 …
用c#写一个函数完成以下功能有两个数组a,b他们的长度分别m,n且n>=m,将数组a中元素剔除重复 其他 2020-06-29 …
血红素中含有C、H、O、N、Fe五种冗素.回答下列问题(1)C、N、O、H四种元素中电负性最大的是 化学 2020-07-02 …
遗传密码子阅读的方向是从N端到C端,还是C端到N端?书上写的翻译的方向是N端到C端,但是遗传密码的 语文 2020-07-06 …
超难证明题求证:C(n,k)+C(n,k-1)C(m,1)+C(n,k-2)C(m,2)+.+C( 数学 2020-07-20 …
一个基本关于二项式定理的问题(高中)!1,为什么C(n,2)=45能推得n^2-n-90=0备注: 数学 2020-08-03 …
排列组合问题从N个不同的元素中一个一个取出n个元素,每次取出都放回去,请问取出的n个元素有多少种组合 数学 2020-11-08 …
血红素中含有C、H、O、N、Fe五种元素.回答下列问题:(1)C、N、O、H四种元素中电负性最小的是 化学 2020-12-02 …