频道栏目
首页 > 资讯 > 网络技术 > 正文

计算机等级考试三级网络技术上机题(8)

14-12-22        来源:[db:作者]  
收藏   我要投稿
编写函数jsValue(),它的功能是求Fibonacci数列中大于t的最小的一个数,结果由函数返回,其中Fibonacci数列F(n)的定义为:
  F(0)=0,F(1)=1
  F(n)=F(n-1)+F(n-2)
  最后调用函数writeDat(),把结果输出到文件OUT80.DAT中。
  例如:当t = 1000时,函数值为1597。
  注意:部分源程序已给出。
  请勿改动主函数main()和写函数WriteDat()的内容。
  试题程序:
  #include
  void writeDat();
  int jsValue(int t)
  {
  }
  void main()
  {
  int n;
  n=1000;
  printf("n=%d, f=%dn", n, jsValue(n));
  writeDat();
  }
  void writeDat()
  {
  FILE *out;
  int s;
  out = fopen("OUT80.DAT", "w");
  s = jsValue(1000); printf("%d",s);
  fprintf(out, "%dn", s);
  fclose(out);
  }
【答案】
  int jsValue(int t)
  {
  int f1=0,f2=1,fn; /*定义变量存储Fibonacci数,初始化数列的前两项*/
  fn=f1+f2; /*计算下一个Fibonacci数*/
  while(fn<=t)>
  {
  f1=f2;
  f2=fn;
  fn=f1+f2;
  }
  return fn; /*返回Fibonacci数列中大于t的最小的一个数*/
  }
  【解析】解答本题的关键是要充分理解题意,只有理解了题意本身的数学过程,才能把数学过程转化为程序逻辑。根据已知数列,我们不难发现:在 Fibonacci数列中,从第三项开始,每一项都可以拆分为前两项之和。本题要求找到该数列中"大于t的最小的一个数"。这里可以借助一个while循环来依次求数列中的数,直到出现某一项的值大于t,那么这一项就是"大于t的最小的一个数"。
相关TAG标签
上一篇:
下一篇:计算机等级考试三级网络技术上机题(10)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站