Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: [Thiết kế Web] Biểu thức số học ép kiểu hỗn hợp

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 10: JavaScript căn bản (1): giới thiệu, biến, kiểu dữ liệu, toán tử, hàm — khóa Thiết kế Web

    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:

    • toán tử *, /, % được thực hiện trước +, - (kết hợp trái, cùng mức ưu tiên xử lý từ trái qua phải theo đúng thứ tự xuất hiện)
    • với *, /, % cả hai toán hạng luôn được ép về số bằng Number()
    • với + nếu một trong hai toán hạng (tại thời điểm tính) là chuỗi thì thực hiện nối chuỗi (ép toán hạng còn lại sang chuỗi bằng String()), ngược lại thực hiện cộng số học
    • với - cả hai toán hạng luôn được ép về số
    • Định dạng đầu vào:

      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ử).

    • Ràng buộc đầu vào:

      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].

    • Định dạng đầu ra:

      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

    Chủ đề

    🌐 Thiết kế WebThiết kế WebThiết kế Web: JavaScript — Cơ bảnTất cả môn học

    Đang tải editor...