C语言编程:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列

C语言编程:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。急啊求大神

//这个题目就是斐波那契数列的一个变式

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int a[22];
    a[0]=1;
    a[1]=1;
    int i;  int fenmu;  int fenzi;
    double sum=0;
    //我们先打印一下前20项看一看是否符合规律
    printf("我们先打印一下前20项看一看是否符合规律:\n");
    for(i=2;i<=21;i++)
    {
        a[i]=a[i-1]+a[i-2];
        fenmu=a[i-1];
        fenzi=a[i];
        sum+=fenzi/fenmu*1.;
        printf("%4d/%4d\t",fenzi,fenmu);
    }
    printf("前20项之和为:%lf",sum);
    return (0);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-13
#include<stdio.h>
int main (void)
{
int i = 1;
int j = 2;
int count =1;
double vlue = 0.0;

for(;count <= 20; count++)
{ vlue += (double)j/i;
j= i+j;
i= j-i;
}
printf("%.2lf",vlue);
return 0;
}
这样写就ok了,我验算过了 ,望采纳
第2个回答  2015-03-13
#include <stdio.h>

double Sum(int n) {
int i;
double sum = 0.0;
double rator = 2,nator = 1,t;
for(i = 0; i < n; ++i) {
sum += rator / nator;
t = nator;
nator = rator;
rator = t + nator;
}
return sum;
}
 
int main() {
int n = 20;
printf("f(%d) = %lf\n",n,Sum(n));
return 0;
}

第3个回答  2015-03-13
int i=0;
double x=2.0,y=1.0,z=0;
for(;i<20;i++){
z+=x/y;
x+=y;
y=x;

}
第4个回答  2015-03-13
struct equal
{
double L;
double R;

};
equal x[20];
x[0].L=2;x[0].R=1;
x[1].L=3;x[1].R=2
for(int i=2;i<20;i++)
{
x[i].L=x[i-1].L+x[i-2].L;

x[i].R=x[i-1].R+x[i-2].R;
}
double sum=0;
for(int i=0;i<20;i++)
{
sum+=x[i].L/x[i].R;

}
cout<<sum;
相似回答