#include "stdio.h"
void main()
{
/*
数列前20项的和
2/1,3/2,5/3,8/5,13/8,21/13....
a=1,b=2;
a1=2,b1=3;
a=a+a1=3;
b=b+b1=5;
--------------------------
a1=2,b1=3;
a =3,b =5;
---------
a跟a1交换
b跟b1交换
a=2,b=3;
a1=3,b1=5;
*/
int i;
double a,a1,b,b1,a2,b2,sum=0;
//b/a,b1/a1
a=1,b=2; //第一项:2/1 a=1,b=2;
a1=2;b1=3; //第二项:3/2 a=2,b=3;
//第三项:5/3 a1=3,b1=5;
//第四项:8/5 a =5, b=8
sum = b/a+b1/a1;//前2项的值
//从第3项开始计算
for(i=2;i<20;i++)
{
a=a+a1; //3
b=b+b1; //5
sum+= b/a;
printf("%0.0lf/%0.0lf+",b,a);
a2=a; //a2是临时变量
a=a1;
a1=a2;
b2=b; //b2是临时变量
b=b1;
b1=b2;
}
printf("=%0.2lf",sum);
}
递归,问问题之前自己先想想吧
#include <stdio.h>
int main() {
float sum=0;
int a=1,b=1,t;
for(int i=1;i<=40;i++)
{
sum+=a*1.0/b;
t=a;
a=b;
b=t+a;
}
printf("sum=%.4f\n",sum);
return 0
}
#include <stdio.h>
void main(){
double a=1.0;
double b=1.0;
double c=0;
double sum=0;
for (int i=0;i<40;i++){
sum+=(a/b);
c=a;
a=b;
b=c+b;
}
printf("sum==%lf\n",sum);
}