69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
float A(int n, float f1, float f2);
int main()
{
int n;
float sum;
scanf("%d",&n);
sum = A(n, 1.0, 2.0);
printf("%.3f\n",sum);
return 0;
}
float A(int n, float f1, float f2)
{
if (1 == n)
return f2/f1;
else
return f2/f1 + A(n-1, f2, f1+f2);
}
#include <stdio.h>
long double Fibonacci(int n)// recursion
{
if( n < 0 )
{
printf("ERROR\n");
return 0;
}
else if( n < 2 )
return 1;
else
return ( Fibonacci(n-1) + Fibonacci(n-2) );
}
int main()
{
int n ;
long double sum = 0,a,b;
printf("input n: ");
b = Fibonacci(1);
scanf("%d",&n);//记录上一次的分母的值 来减少一次递归 缩短时间
for(int i = 0; i < n ; i++ )
{
a = b;
b = Fibonacci(i+2);
sum += b / a;
//sum += Fibonacci(i+2) / Fibonacci(i+1);
}
printf("%lf\n",sum);
return 0;
}