小學奧數————蓄水池水管問題
這道題有點怪,小學奧數除了暴力還能有其他算法?
我第一眼看到它就認為是暴力水題,直接暴力。但不對啊,有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;
}