1125: 【入门】求数列前n项的和

内存限制:32 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:38 解决:16

题目描述

求1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/34……的前n项的和。

输入

第1行:一个整数n(1 <= n <= 30 )。

输出

一行:一个小数,即前n项之和(保留3位小数)。

样例输入 复制

20

样例输出 复制

12.660

提示

使用递归:

#include<bits/stdc++.h>
using namespace std;
int f1(int x) {
	if (x==1||x==2)
	    return 1;
	else
	    return f1(x-1)+f1(x-2);
} 
int f2(int x) {
	if (x==1)
	    return 1;
	else if (x==2)
	    return 2;
	else
	    return f2(x-1)+f2(x-2);
}
int main(){
    int n;
    double ans=0;
    cin>>n;
    for (int i=1;i<=n;i++) {
    	ans+=1.0*f1(i)/f2(i);
	}
	printf("%.3lf",ans);
	return 0;
}