求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…
的前n项之和。
#include <stdio.h>
void main()
{
double a;
double f(double n);
scanf("%lf",&a);
printf("%lf",f(a));
}
double f(double x)
{
double a=2,b=3,m=1,n=2,s=3.5,p,q,t;
int i;
if(x==1)
return 2;
if(x==2)
return 3.5;
else
{
for(i=3;i<=x;i++) //注意这里是从3开始的
{
p=a+b;
a=b;
b=p;
q=m+n;
m=n;
n=q;
t=(double)p/q;
s=t+s; //注意这里的s的初始值为已经加上了前两项的和
}
return s;
}
}