**热量的传递 公式解释(摘自洛谷题解) :
推导:设沸腾温度为a
//则第一杯温度为a,需要加热t1=a
//第二杯可以中和的最高温度为a/2,需要加热t2=a/2
//第三杯可以中和的最高温度为t3=(a/4+a)/2=5a/8,需要加热t3=3a/8
//第四杯可以中和的最高温度为t4=((a/8+5a/8)/2+a)/2=11a/16,需要加热t4=5/16
//则t3/t2=3/4=1-1/4, t4/t3=5/6=1-1/6
//继续推导得t(n+1)/t(n)=1-1/2n;
最后递推求解。
#include<cstdio>
#include<iostream>
#include<cstring>
#define a (2*(i-1)-1)/(2*(i-1))
using namespace std;
const int maxn=50000+5;
double f[maxn],ans=0,x=4200,b=100;
int n;
int main()
{
freopen("water.in","r",stdin);
freopen("water.out","w",stdout);
cin>>n;
double k=(double)1/n;
memset(f,0,sizeof(f));
f[1]=4200*100*k;
for(int i=2;i<=n;i++)
{
f[i]=f[i-1]*a;
ans+=f[i];
}
ans+=f[1];
printf("%.2lf",ans);
return 0;
}