标题
数列求和
类别
函数与递归
时间限制
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>
int main()
{
int n,i;
scanf("%d",&n);
float a[n]={2.0,3.0},b[n]={1.0,2.0};
for(i=2;i<=n;i++)
{
a[i]=a[i-1]+a[i-2];
b[i]=b[i-1]+b[i-2];
}
double sum=0.0;
for(i=0;i<n;i++)
{
sum+=a[i]/b[i];
}
printf("%.2lf",sum);
}
//不用数组
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,i=1,b=2,c=1,d;
double e=0;
scanf("%d",&a);
while(i<=a)
{
i++;
e=e+b*1.0/c;
d=b;
b=b+c;
c=d;
}
printf("%.2f",e);
return 0;
}