解析:
不想打数学公式所以找了一篇写的比较详尽的题解。
代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define re register
#define cs const
#define st static
#define pc putchar
#define gc getchar
inline
int getint(){
re int num=0;
re char c=gc();
for(;!isdigit(c);c=gc());
for(;isdigit(c);c=gc())num=(num<<1)+(num<<3)+(c^48);
return num;
}
double f[10001],g[10001];
int main(){
int n=getint();
for(int re i=n-1;~i;--i){
f[i]=f[i+1]+1.0*n/(double)(n-i);
}
for(int re i=n-1;~i;--i){
g[i]=f[i+1]+g[i+1]+f[i]*i/(double)(n-i)+1.0*n/(n-i);
}
printf("%.2lf",g[0]);
return 0;
}