第一条题解!!!小学奥数——蓄水池水管问题

小学奥数————蓄水池水管问题

这道题有点怪,小学奥数除了暴力还能有其他算法?

我第一眼看到它就认为是暴力水题,直接暴力。但不对啊,有bug,我无论写的程序还是手算都没算出样例。后来发现不对,题看错了,进水出水看反了。。。于是轻松改掉代码,开开心心提交代码,等待AC——

但是出来一个9分,为啥呢?想来想去仍不得要领,后来一想,或许是因为精度不够?便把所有的数都乘10000,然后再一提交,果然AC了!!

代码如下:

#include<cstdio>
#include<iostream>
using namespace std;
int main(){
    double a,b,c,d;
    double a1,b1,c1,d1,i,tot=0;
    cin>>a>>c>>b>>d;
    a1=(1/a)*10000;
    b1=(1/b)*10000;
    c1=(1/c)*10000;
    d1=(1/d)*10000;
    for(i=0;;)
    {
        tot+=a1;
        i++;
        if(tot>=10000)
        {
            tot-=10000;
            i-=tot/a1;
            break;
        }
        i++;
        tot-=c1;
        i++;
        tot+=b1;
        if(tot>=10000)
        {
            tot-=10000;
            i-=tot/b1;
            break;
        }
        i++;
        tot-=d1;
    }
    printf("%.2lf",i);
    return 0;

}

只想找一个不会伤害我的人
原文地址:https://www.cnblogs.com/DukeLv/p/7853806.html