なぜ通るのか理解できない。 もしかしたら$\frac{1}{x+l}$を足す方が正確かもしれない。

solution

単純に第$l$項までの和を計算し$\frac{1}{l}$を足せば通る。 $\frac{1}{l^2}$ぐらいの精度になるようだ。

implementation

#include <cstdio>
#include <cmath>
#define repeat_from(i,m,n) for (int i = (m); (i) < (n); ++(i))
const int l = 1000000;
int main() {
    long double x; scanf("%Lf", &x);
    long double y = 0;
    repeat_from (n,1,l) y += powl(x+n, -2);
    y += 1.0/l;
    printf("%.12Lf\n", y);
    return 0;
}