Cho n biểu thức, mỗi biểu thức là một dãy token cách nhau bởi khoảng trắng, xen kẽ giữa toán hạng (operand) và toán tử (operator), bắt đầu và kết thúc bằng toán hạng (dạng "v1 op1 v2 op2 v3 ...").
Mỗi toán hạng là một số (viết trực tiếp, có thể âm hoặc có phần thập phân) hoặc một chuỗi (đặt trong dấu ngoặc kép, không chứa khoảng trắng bên trong, có thể rỗng ""). Mỗi toán tử thuộc {+, -, *, /, %}.
Hãy tính giá trị biểu thức đúng theo ngữ nghĩa JavaScript:
Dòng đầu tiên là số nguyên n (1 ≤ n ≤ 200). n dòng tiếp theo, mỗi dòng là một biểu thức theo đúng dạng trên (3, 5 hoặc 7 token, tức 2, 3 hoặc 4 toán tử).
1 ≤ n ≤ 200. Mỗi biểu thức có từ 2 đến 4 toán tử. Không có phép chia hoặc chia lấy dư cho 0. Số trong khoảng [-10^4, 10^4].
In n dòng, mỗi dòng là kết quả của biểu thức tương ứng: nếu kết quả là số nguyên thì in nguyên dạng số nguyên; nếu là số không nguyên (và là số hữu hạn) thì làm tròn đến đúng 4 chữ số thập phân (toFixed(4)); nếu là NaN thì in "NaN"; nếu là Infinity/-Infinity thì in "Infinity"/"-Infinity"; nếu kết quả là chuỗi thì in trực tiếp chuỗi đó (không có dấu ngoặc kép).
Ví dụ:
Đầu vào:
3
"2" + 3 * "4"
2 * 3 - 4 * 5
10 - 3 - 2
Đầu ra:
212
-14
5
Đang tải editor...