题目

牛牛准备继续进阶,计算更难的数列 输入一个整数n,计算 1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...+2n-1)的值点此跳转题目

输入

输入一个整数

输出

输出一个浮点数,保留3位小数

题目分析

将每一项的分母看作一个数列的前n项这个数列的通项公式为 只需要使用交错相减法根据 的奇偶性分情况讨论出该数列的前 项和,然后使用递归地方法即可完成题目要求

代码

#include<iostream>
#include<cmath>
using namespace std;
double h(int n)
{
    if(n==1) return 1;
    else if(n%2==0) return 1/(-1-pow(-1,n)*(2*n-1))*2 + h(n-1);
    else return 1/(1-pow(-1,n)*(2*n-1))*2 + h(n-1);
}
int main()
{
    int n ;
    cin >> n;
    printf("%.3lf",h(n));
    return 0;
}