2021-10-24//xdoj_数列求和

标题
数列求和

类别
函数与递归

时间限制
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;
}
上一篇:为什么直接单独输出event,里面currentTarget属性是null.(还有其他例子但忘记了。。。)


下一篇:文件读写以及NMEA码中GPS信息的提取