标题
数列求和
类别
函数与递归
时间限制
1S
内存限制
1000Kb
问题描述
有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,......An/Bn
A1=2,A2=3,An=An-1+An-2;
B1=1,B2=2,Bn=Bn-1+Bn-2。
求出这个数列的前n(2<=n<=30)项之和。
输入说明
一个整数n
输出说明
输出一个实数表示数列前n项之和,结果保留2位小数(四舍五入)
输入样例
2
输出样例
3.50
#include<stdio.h>
float Fibonacci_sum(float a1,float a2,float b1,float b2,float sum,int n);
int main()
{
float sum,a1,a2,b1,b2;
int n;
scanf("%d",&n);
a1 = 2;
a2 = 3;
b1 = 1;
b2 = 2;
sum = 0;
sum = Fibonacci_sum(a1,a2,b1,b2,sum,n);
printf("%.2f",sum);
}
float Fibonacci_sum(float a1,float a2,float b1,float b2,float sum,int n)
{ float ta,tb;
if(n==0) return sum;
else
{ sum = sum + a1/b1;
ta = a2;
a2 = a1 + a2;
a1 = ta;
tb = b2;
b2 = b1 + b2;
b1 = tb;
n--;
Fibonacci_sum(a1,a2,b1,b2,sum,n);
}
}