第1个回答 2008-04-25
偷个懒~改了下上面的
#include <stdio.h>
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.......
后一个除前一个
第2个回答 2008-04-25
#include <stdio.h>
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;
}
第3个回答 推荐于2017-09-19
#include <stdio.h>
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);
}本回答被提问者采纳
第4个回答 2008-04-25
#include <stdio.h>
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);
}