C语言求一组分数数列之和

avatar 2016年03月16日17:04:19 1 6673 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。

第一个代码是受斐波那契数列求兔子的方法的思维定式,把分子分母单独放开了
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int i;
  5.     double m[21];
  6.     double n[21];
  7.      m[1]=2;
  8.      m[2]=3;
  9.      n[1]=1;
  10.      n[2]=2;
  11.     double sum=0;
  12.     for(i=1;i<=20;i++)
  13.     {
  14.         if(i==1)
  15.         {
  16.             m[1]=2;n[1]=1;
  17.         }
  18.         if(i==2)
  19.         {
  20.             m[2]=3;n[2]=2;
  21.         }
  22.         if(i>2)
  23.         {
  24.             m[i]=m[i-1]+m[i-2];
  25.             n[i]=n[i-1]+n[i-2];
  26.         }
  27.         sum=sum+m[i]/n[i];
  28.     }
  29.     printf("前20项总和为%f",sum);
  30. }

这里,如果能看穿分子分母的关系,代码就会很简洁
  1. #include<stdio.h>
  2. int main()
  3. {
  4.    int i;
  5.     double m=2,n=1,sum=0,t;
  6.     for(i=1;i<=20;i++)
  7.     {
  8.         sum=sum+m/n;
  9.         t=m; //调换分子与分母数字
  10.         m=m+n;
  11.         n=t;
  12.     }
  13.     printf("前20项总和为%f",sum);
  14. }



本文地址:http://liuyanzhao.com/3440.html

转载请注明
  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0