数列2/1,3/2,5/3,8/5,13/8,21/13……用C语言求前20项之和,怎么写??

急急急!

后一项 = 1 + 前一项的倒数

int i;
double a=2, b, sum;
sum = a;
for (i=1; i<20; ++i) {
b = 1+1/a;
a = b;
sum += b;
}
//sum就是所求的和
printf("前20项之和:%f\n",sum);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-01
给你一个函数的算法,改写成一个函数就可以啦,nNum就是前n项和
int nNum = 20;
double dSum = 0;

double nLast = 0;
double nCur = 1;
double nFuture = 1;

for (int i = 1; i <= nNum; i++)
{
double dFenzi = nCur + nFuture;
double dFenmuu = nLast + nCur;

dSum += dFenzi / dFenmuu;

nLast = nCur;
nCur = nFuture;
nFuture = nLast + nCur;
}

函数
double GetSum(int &nNum)
{
double dSum = 0;

double nLast = 0;
double nCur = 1;
double nFuture = 1;

for (int i = 1; i <= nNum; i++)
{
double dFenzi = nCur + nFuture;
double dFenmuu = nLast + nCur;

dSum += dFenzi / dFenmuu;

nLast = nCur;
nCur = nFuture;
nFuture = nLast + nCur;
}
}

调用
GetSum(20);
第2个回答  2010-11-11
main()
{
int n;
double a=1,b=2,m=0;
for(n=1;n<21;n++)
{
m=m+b/a;
b=a+b;
a=b-a;
}
printf("%lf",m);
}
第3个回答  2010-11-01
int i;
double a=2, b;
double sum = a;
for (i=0; i<20; ++i) {
b = 1+1/a;
a = b;
sum += b;
}
printf("%f\n",sum);
第4个回答  2010-11-01
找出数学规律
an-1=b/a
an=(a+b)/b
至于编程就交给你了 也不是很难的
相似回答