关键一点是,需要假设出一个水池的容量。即4个水管的最小公倍数,再假设出每个水管的流速。然后模拟即可。
#include#include using namespace std;int gcd(int a,int b){ return a%b?gcd(b,a%b):b;}int a,b,c,d,tot,temp;double t;int v[4]; int main(){ scanf("%d%d%d%d",&a,&b,&c,&d); tot=a*b*c*d/gcd(gcd(a,b),gcd(c,d)); v[0]=-tot/d;v[1]=tot/a;v[2]=-tot/b;v[3]=tot/c; while(1){ t++; if(temp+v[(int)t%4]