编写函数fun,它的功能是:求Fiboncci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 例如:当t=1000时,函数值

admin2013-04-02  25

问题 编写函数fun,它的功能是:求Fiboncci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
    F(0)=0,F(1)=1
    F(n)=F(n-1)+F(n-2)
    例如:当t=1000时,函数值为:1597。
    注意:部分源程序在文件PROGl.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
int fun(int t)
{
}
main()   /* 主函数 */
{int n;
   void NONO ();
   n=1000;
   printf("n = %d, f = %d\n",n, fun(n));
   NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  FILE *fp, *wf ;
  int i, n, s ;
  fp = fopen("in.dat","r");
  wf = fopen("out.dat","w");
  for(i = 0 ; i < 10 ; i++) {
    fscanf(fp, "%d", &n);
    s = fun(n);
    fprintf(wf, "%d\n", s);
  }
  fclose(fp);
  fclose(wf);
}

选项

答案{ int f0=0, f1=1, f; do { f=f0+f1; f0=f1; f1=f; } while(f
解析 (1)在循环中求得数列,并对数列的值进行判断,看是否符合题干要求。
(2)如果求得的数列值不满足题干要求,将当前值赋值给前一项,将前一项赋给前一项的前一项,继续求下一项的数列值,直到满足条件。
转载请注明原文地址:https://kaotiyun.com/show/jJJp777K
0

最新回复(0)