首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数列求和精度有关问题

2012-03-09 
求助:数列求和精度问题有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。方法一:main

求助:数列求和精度问题
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
方法一:main()
{
int n,t,number=20;
float a=2,b=1,s=0;
for(n=1;n<=number;n++)
{s=s+a/b;
t=a;a=a+b;b=t;
printf("sum is %f\n",s);}

getch();}
方法2:#include "stdio.h"
int main()
{int i;
float s,z,n1,m1;
float m[20],n[20];
n[0]=2.0;
m[0]=1.0;
z=n[0]/m[0];
n[1]=n[0]+m[0];
m[1]=n[0];
 s=n[1]/m[1];
 z=z+s;
for(i=2;i<20;i++)
  {n[i]=n[i-1]+n[i-2];
  m[i]=n[i-1];
  s=n[i]/m[i];
   
  z=z+s;
  printf("z=%f\n",z);}
while(1);}
得出的结果分别是:前面几项是一样的,但到了19.715986时出现偏差,另一个结果是19.715988,直到最后结果都不太一样,不知为什么???最终结果一个是32.660259,一个是32.660263????

[解决办法]
可以先通分再计算

热点排行