<dfn id='RUoOLrDr'></dfn>

        <noscript id='RUoOLrDr'></noscript>

      1. 频道栏目
        首页 > 考试 > 等级考试 > 三级 > 网络技术 > 正文

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

        2019-02-20 08:25:19           
        收藏   我要投稿
        编写函数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的最小的一个数"。
        上一篇:计算机等级考试三级网络技术上机题(10)
        下一篇:计算机等级考试三级网络技术上机题(13)
        相关文章
        图文推荐

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

        版权所有: 第一门户--致力于做实用的IT技术学习网站