用C语言编写程序:有一分数序列:2⼀1,3⼀2,5⼀3,8⼀5,13⼀8,21⼀13.........求出前20项之和

急用啊,高手们,给我点帮助吧!!!!!!!!谢谢
2024-12-27 09:14:40
推荐回答(5个)
回答1:

#include
main()
{
float i=1.0,j=2.0,sum=0.0,temp;
int n;
for(n=0;n<20;n++)
{
sum+=j/i;
temp=j; //temp存储前一个分数的分子j
j=i+j; //j赋值为此次循环的分子与分母之和,它将作为下次的分子
i=temp; //i赋值为此次循环的分子,它将作为下次的分母
}
printf("The SUM is %f\n",sum);
}

回答2:

偷个懒~改了下上面的
#include
void main()
{
int a[30],i;
double s=0;
a[0]=1;a[1]=2;
for(i=2;i<=20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
s+=((double)a[i+1])/a[i];
printf("%lf\n",s);
}

忘了优先级咋排了~这样应该没事

以上数列为菲波拉切数列的变化
1 1 2 3 5 8 13 21.......

后一个除前一个

回答3:

#include
int main()
{
int i=1;
double j1,j2,k1,k2,x,t,sum;
j1=2;j2=3;
k1=1;k2=2;
sum=2/1.0;
while(i++<20){
sum+=j2/k2;
x=j2;j2+=j1;j1=x;
x=k2;k2+=k1;k1=x;
}
printf("前20项和为:%f\n",sum);
return 0;
}

回答4:

#include
main()
{
int a=1,b=2,t,i;
float sum=0;

for(i=1;i<=20;i++;)
{
sum=sum+(float)b/a;
t=a+b;
a=b;
b=t;
}
printf("%d",sum);
}

回答5:

#include
void main()
{
int a[30],i;
double s=0;
a[0]=1;a[1]=2;
for(i=2;i<=20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
s+=(double)a[i+1]/a[i];
printf("%lf\n",s);
}