游客 Signup | Login
中文 | En

2165 - 计算分数序列的和(II)

有一个分数序列: ,求出这个数列的前N项之和.

Input

有多行数据,每行数据只有一个正整数N(N<30),结果保留两位小数(四舍五入)。

Output

输出N所对应的分数序列之和,每个输出占一行。

Examples

Input

5
8

Output

8.39
13.24

Solution C

#include<stdio.h>
int main(){
int N;
while(scanf("%d",&N)!=EOF){
    double z=2.0,m=1.0,t;
    int i;
    double sum=0.0;
    for(i=1;i<=N;i++){
        sum=sum+z/m;
        t=z;
        z=z+m;
        m=t;
        }
    printf("%.2f\n",sum);
}
return 0;
}

Solution C++

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	int n;
	double sum;
	double F1, F2, F;
	while (cin>>n)
	{
		F1 = 1;
		F2 = 2;
		sum = F2/F1;
		
		for (int i=2; i<=n; i++)
		{
			F = F1;
			F1 = F2;
			F2 = F1 + F;
			sum += F2/F1;
		}
		cout <<setprecision(2) <<std::fixed<< sum<<endl;
	}
	return 0;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题