题目描述
已知注水管 A 单独注满一池水需要 a 小时,注水管 B 单独注满一池水需要 b 小时,排水管 C 将一池水排净需要 c 小时。
初始时水池中没有水,同时打开注水管 A 和 B。t 小时后,再打开排水管 C,问水池注满一共需要多少小时?
保证打开水管 C 时水池还没有满,且保证水池最终可以注满。
输入
输入四个整数 a,b,c,t (1≤a,b,c,t≤50)
输出
输出一个浮点数,表示水池注满一共需要多少小时(包括一开始的 t 小时)。
结果保留两位小数。
样例输入
20 16 10 5
样例输出
40.00
解题思路:
注水问题其实这是一道数学题,核心是求出t小时后的注满所需时间,故设t小时后需要x
小时才能注满水池,则水池注满一共需要 t + x
小时。
由题意可得如下公式:
代码示例:
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
String[] split = s.split(" ");
Double a = Double.valueOf(split[0]);
Double b = Double.valueOf(split[1]);
Double c = Double.valueOf(split[2]);
Double t = Double.valueOf(split[3]);
Double sum = t + (a*b*c-b*c*t-a*c*t) / (b*c+a*c-a*b);
System.out.println(String.format("%.2f",sum));
}
}
运行示例: