【P1984 [SDOI2008]烧水问题】找规律

https://www.luogu.org/problem/P1984

类似这种题,n数据比较大且输出比较简单都可以从找规律去想。其实就是一个贪心的思想

把一杯水的温度升高t℃所需的能量为(4200*t/n)J

第一杯水a1:花100度

第二杯水a2:花50度  =1/2 *a1

第三杯水a3:花37.5度 = 3/4*a2

第四杯a4:花31.25度 = 5/6*a3

规律:a_(n)=(2*(n-1)-1)/(2*(n-1))*a_(n-1)

 

 

 

#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;   
#define INF 0x3f3f3f3f;
const int MAXN=230;
int n,m;
#define typec long long
int main(){
    int n;
    cin>>n;
    double t,ans;
    t=ans=(double)4200*100/n;
    //cout<<"t:"<<t<<endl;
    for(int i=1;i<n;i++){
        t=(double)t*(2*i-1)/(2*i);
        ans+=t;
    }
    printf("%.2lf\n",ans);
}

 

转载于:https://www.cnblogs.com/Aiahtwo/p/11551132.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值