一个关于算法的问题c
c_stu 2007-07-20 04:11:46 有意分数列:
2/1,3/2,5/3,8/5,13/8,21/13...
求此数列前20项之和。
==============================
我的解是:
#include "stdio.h"
#include "math.h"
main()
{
int i;
float s=2/1+3/2,j3,j4,a1=2,a2=3,b1=1,b2=2;
for(i=1;i<=9;i++)
{
a1=a1+a2;
a2=a2+a1;
b1=b1+b2;
b2=b1+b2;
j3= a1/b1;
j4=a2/b2;
s=s+j3+j4;
}
printf("%9.6f",s);
}
得到的答案是 32.160263
========================================
但是我的答案和书上有出入,不知是谁错了?为什么会产生如此大的误差?
书上的解:
#include "stdio.h"
#include "math.h"
main()
{
int i,t,n=20;
float a=2,b=1,s=0;
for(i=1;i<=n;i++)
{
s=s+a/b;
t=a;
a=a+b;
b=t;
}
printf("sum=%9.6f\n",s);
}
他的答案是 32.660259