Gần đây tôi đã viết một ngôn ngữ mới , để tránh phải xử lý thứ tự các thao tác , tôi chỉ đơn giản là ngoặc đơn cho từng biểu thức để tránh hoàn toàn điều này.
Vì dấu ngoặc đơn ở mã char 40-41, mã của bạn sẽ cần phải càng ngắn càng tốt.
Ví dụ
1+2*3
(1+(2*3))
2*(3+4)
(2*(3+4))
2*3/4+3
(((2*3)/4)+3)
342*32/8
((342*32)/8)
Quy tắc
Các thao tác duy nhất bạn cần xử lý là: *
(nhân), /
(chia), +
(cộng) và -
(trừ).
- Thứ tự của các hoạt động là:
- Dấu ngoặc
- Nhân, chia
- Chấm, trừ
- Bạn nên đi bên trái
- Các số đầu vào sẽ luôn là số nguyên dương (xem phần thưởng)
Tiền thưởng
-20% nếu bạn xử lý phủ định:
3+-5
(3+(-5))
-5% nếu bạn cho phép không gian được đặt bên trong đầu vào:
3 + 4
(3+4)
-10% nếu bạn có thể xử lý số thập phân trong đầu vào:
1+.12
(1+.12)
1+0.21/3
(1+(0.21/3))
500 tiền thưởng: nếu bạn quản lý để viết câu trả lời trong Chưa đặt tên / Khối
1+2+3+4
(mà một số giải pháp nhất định có thể là dấu ngoặc đơn ((1+2)+(3+4))
)