Bạn phải viết một chương trình đánh giá một chuỗi sẽ được nhập vào một máy tính nâng cao.
Chương trình phải chấp nhận đầu vào bằng stdin và đưa ra câu trả lời đúng. Đối với các ngôn ngữ không có chức năng chấp nhận stdin, bạn có thể đảm nhận các chức năng readLine
và print
để xử lý các tác vụ này.
Yêu cầu:
- Không sử dụng bất kỳ loại chức năng "eval"
- Có thể xử lý số dấu phẩy động và số âm
- Hỗ trợ ít nhất các toán tử +, -, *, / và ^
- Hỗ trợ dấu ngoặc và dấu ngoặc đơn để ghi đè thứ tự bình thường
- Có thể xử lý đầu vào chứa một hoặc nhiều khoảng trắng giữa các toán tử và số
- Đánh giá đầu vào bằng cách sử dụng thứ tự hoạt động tiêu chuẩn
Các trường hợp thử nghiệm
Đầu vào
10 - 3 + 2
Đầu ra
9
Đầu vào
8 + 6 / 3 - 7 + -5 / 2.5
Đầu ra
1
Đầu vào
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
Đầu ra
41
.0
ở cuối. Tôi không chắc lắm về độ chính xác, nhưng nhiều hơn là tốt hơn.
.0
ở cuối nếu chúng là số nguyên? Ngoài ra: độ chính xác của máy tính phải như thế nào (liên quan đến độ chính xác của dấu phẩy động và như vậy)?