欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

编写函数jsValue(),它的功能是求Fibonacci数列中大于t的最小的一个数,结果由函数返回,其中Fibona

时间:2017-07-14

编写函数jsValue(),它的功能是求Fibonacci数列中大于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<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(1000); printf("%d",s);


fprintf(out, "%d\n", s);


fclose(out);


}



答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。


答 案:int jsValue(int t) { int f1=0f2=1fn; fn=f1+f2; while(fn=t) {f1=f2;f2=fn;fn=f1+f2;} /*如果当前的Fibonacci数不大于t则计算下一个 Fibonacci数*/ return fn; /*返回Fibonacci数列中大于t的最小的一个数*/ }
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项的前面第二项,用变量f2来始终表示第n项的前面第一项。这就实现了变量的活用与巧用。
相关推荐

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。