📄 3663939_ac_172ms_2724k.java
字号:
import java.util.*;
public class Main {
private Scanner in;
public static void main(String[] args) {
new Main().run();
}
private double calc(String smeech) {
if (smeech.indexOf('(') == -1) {
return new Double(smeech);
}
double p = 0;
double e1, e2;
e1 = e2 = 0;
int length = smeech.length();
for (int i = 0; ; i++) {
if (smeech.charAt(i) == ' ') {
p = new Double(smeech.substring(1, i));
int l, r;
l = r = 0;
if (smeech.charAt(i + 1) == '(') {
for (int j = i + 1; ; j++) {
if (smeech.charAt(j) == '(') {
l++;
}
if (smeech.charAt(j) == ')') {
r++;
}
if (l == r) {
e1 = calc(smeech.substring(i + 1, j + 1));
e2 = calc(smeech.substring(j + 2, length - 1));
break;
}
}
} else {
for (int j = i + 1; ; j++) {
if (smeech.charAt(j) == ' ') {
e1 = new Double(smeech.substring(i + 1, j));
e2 = calc(smeech.substring(j + 1, length - 1));
break;
}
}
}
break;
}
}
return p * (e1 + e2) + (1 - p) * (e1 - e2);
}
private void run() {
in = new Scanner(System.in);
String smeech;
while (true) {
smeech = in.nextLine();
if ("()".equals(smeech)) {
break;
}
System.out.printf("%.2f\n", calc(smeech));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -