第一条题解!!!小学奥数——蓄水池水管问题
小学奥数————蓄水池水管问题
这道题有点怪,小学奥数除了暴力还能有其他算法?
我第一眼看到它就认为是暴力水题,直接暴力。但不对啊,有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;
}