南沙C++陈老师讲题:1078:求分数序列和

南沙区信奥赛陈老师 / 2024-08-28 / 原文

【题目描述】

【输入】

输入有一行,包含一个正整数n(n≤30)n(n≤30)。

【输出】

输出有一行,包含一个浮点数,表示分数序列前nn项的和,精确到小数点后44位。

【输入样例】

2

【输出样例】

3.5000
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    double sum=0,p=1,q=2;
    int n;
    cin>>n;
    sum=q/p;
    if(n<=1)
    {
        printf("%.4lf",sum);
        return 0;
    }
    for(int i=1;i<n;i++)
    {
        int tmp=q;
        q=q+p;
        p=tmp;
        sum+=q/p;
    }
    printf("%.4lf",sum);
    return 0;
}