Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Trình biên dịch] Phát hiện lời gọi đuôi (tail call)

    Lời gọi đuôi (tail call) là lời gọi hàm mà kết quả của nó được trả về ngay, không còn tính toán nào sau đó — cho phép tối ưu tail call elimination (tái dùng khung ngăn xếp).

    Trong mã hợp ngữ đơn giản, coi một lệnh CALL f là lời gọi đuôi nếu lệnh ngay sau nó là RET.

    Đếm số lời gọi đuôi trong chương trình.

    • Định dạng đầu vào:

      Dòng đầu n. n dòng lệnh hợp ngữ.

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

      1 ≤ n ≤ 10^4.

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

      Một số nguyên: số lời gọi đuôi.

    Ví dụ:

    Đầu vào:

    4
    LOAD x
    CALL f
    RET
    CALL g
    

    Đầu ra:

    1

    Giải thích:

    CALL f ở dòng 2 có RET ngay sau (dòng 3) → là lời gọi đuôi. CALL g ở dòng cuối không có RET sau nó → không phải. Tổng 1 tail call.

    Đang tải editor...