P1984_[SDOI2008]烧水问题

来源:互联网 发布:沪股通 每日数据 查询 编辑:程序博客网 时间:2024/04/28 13:46

QAQ
设烧开一杯水的热量是a
第一杯水中和为0,加热为a
第二杯水中和为a/2,加热为a/2
第三杯水中和为(a/4+a)/2=a*5/8,加热为a*3/8
第四杯水为((a/8+a*5/8)/2+a)/2,加热为a*5/16
前后比值,t(n+1)/t(n)=(1-2*n)
所以t(n+1)=t(n)*(1-2*n)

#include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){   double ans=0;    int n;    scanf("%d",&n);    double t=420000.00/n;;    for(int i=1;i<=n;i++)     {        ans+=t;          t*=(1-0.5/i);     }    /*int ans2=ans*1000;    ans2%=10;    if(ans2>=5) ans+=ans2/1000;    else ans-=ans2/1000;*/    printf("%.2lf",ans);    return 0;}
原创粉丝点击