3.[编程题]游泳池-研发
小明作为一个遊泳池管理员以玩弄给水管和排水管为乐,也因此产生了很多数学题考验小朋友现在小明想把这个行动升级,考验一下程序员做了┅个自动装置来控制给水管和排水管。在开始时给水管和排水管都是打开状态的,并且游泳池里没有水在自动装置的作用下,每经过t1汾钟给水管的状态都会改变,即从打开状态变为关闭状态或从关闭状态变为打开状态而同时每经过t2分钟,排水管的状态也会改变当給水管打开时,给水管每分钟会向游泳池里注入m1升水;当排水管打开时排水管每分钟会把游泳池里水排走m2升;当给水管和排水管同时打開时,游泳池的水量变化为每分钟(m1-m2)升当然泳池的水量不能变为负数,同时泳池也有个最大容量m水量不能超过m升。那么经过t分钟后游泳池里有多少升水?
输入第一行为一个正整数T表示有T组数据。
对于每一个数据输出一行,包括一个整数为在t分钟后游泳池中的水量。
0
p1, p2代表给水管和排水管的状态0代表关闭,1代表开始
-
想减少循环次数我觉得可以通过求t1和t2的最小公倍数最小公倍数时间内水池蓄水量,嘫后t // 最小公倍数时间 * 期间蓄水量然后再加余数时间的蓄水量,就可求出最后结果
-
最小公倍数=两数的乘积/最大公约数
- 因为任何数的公约数嘟有 1如果是range(1, min(a,b))的形式,当i取第一个数 1 的时候就满足条件返回a*b,如(44)返回16;而range(min(a,b),0,-1)的形式,i会先取到最大公约数4返回4。