编写函数,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项的前面第一项。这就实现了变量的活用与巧用。
matlab里怎样将每步的循环结果叠加例如:for i=1:3A=2i+1end这样一共循环三次, 其他 2020-05-13 …
用数组顺序存储完全二叉树的各结点,当i>0且i≤( )时结点i的右子女是2i+1结点,否则此 计算机类考试 2020-05-23 …
关于二叉树,下列说法不正确的是()。A.在第i层上最多有2i-1个结点B.深度为k的二叉树最多有2k 计算机类考试 2020-05-23 …
设对一个n个结点的完全二叉树按序的编号为1,2,3…n,若某结点I≤(n-1)/2,则结点 I的右子 计算机类考试 2020-05-24 …
谁知道这个结果是怎么得出来的,我怎么也算不出来.F=500*(F/500,8%,10)=7243. 其他 2020-06-14 …
请帮我看一下哪里做错了!若复数z满足z(i+1)=√2,则|z|=?我是这样解的、设z=a+bi, 数学 2020-06-21 …
如图为植物光合作用示意图,图中I和II表示叶绿体的结构,A垭表示有关物质,①和②表示反应过程.请回 语文 2020-07-15 …
如图是人体局部内环境示意图,下列叙述正确的是()A.结构I、2中细胞所处的内环境不同B.人长期饥饿 语文 2020-07-16 …
给出一棵树的逻辑结构T=(K,R),其中K={A,B,C,D,E,F,G,H,I,J}R={r}r 英语 2020-07-22 …
已知一棵二叉树的的中序和后序序列如下,求该二叉树的高度(假定空树的高度为0)和度为2,度为1及度为0 数学 2020-12-05 …