题意:给定数n,每次减少一个数s,那么会得到s/n的价值,同时n要减去s,问最后能得到的最大价值是多少?
思路:贪心即可,答案就是1/n+1/n-1+1/n-2+…1
#include <bits/stdc++.h>
const int maxn=1e5+1;
using namespace std;
int main()
{
int n;
scanf("%d",&n);
if(n==1){
printf("1.000000000000\n");return 0;
}
double sum=1;
for(int i=2;i<=n;++i)
{
sum+=(double)1/i;
}
printf("%.12f\n",sum);
}