Thử thách này được mang đến cho bạn bởi cảm hứng thực sự (và bi thảm). Gần đây, hàng số trên bàn phím của tôi hơi rời rạc. Các phím 1-9
đôi khi hoạt động - nhưng lần khác chúng không có kết quả. Là một lập trình viên nhiệt thành, điều này thật kinh khủng! (Xem dấu chấm than đó? Đó là cách bạn biết họ đang làm việc ngay bây giờ.) Tôi không chỉ thường xuyên cần số, mà cả các ký hiệu!@#$%^&*(
hoàn toàn không hiệu quả một nửa thời gian là tốt! Là một lập trình viên C, thay vì dành thời gian cho lịch trình bận rộn của mình về việc vẽ nguệch ngoạc bằng mã để sửa máy tính xách tay, tôi đã quan tâm nhiều hơn đến việc khắc phục sự cố. Trong vài tuần qua, dần dần, tất cả các chữ số trong mã của tôi đã được thay thế bằng hệ thập lục phân để tôi không phải đi săn tìm số để sao chép và dán. Tuy nhiên, một số số không dễ gõ nếu không có phím 1-9
. Ví dụ: số 1
không thể được viết đơn giản bằng hệ thập lục phân và tôi đã dùng đến việc thay thế 1
s trong mã của mình bằng 0xF - 0xE
. Các phím duy nhất mà bị ảnh hưởng là 1-9
, vì vậy tôi duy trì sử dụng đầy đủ các biểu tượng như +
, -
, và /
. Tuy nhiên, tôi không thể sử dụng phép nhân hoặc dấu ngoặc đơn, như*
và (
thường bị hỏng. Điều này dẫn đến thách thức của bạn.
Đầu vào
Một số nguyên, n
tương đương với stdin hoặc ngôn ngữ của bạn. Nếu bạn muốn, số nguyên có thể được đi trước hoặc theo sau bởi một dòng mới hoặc ký tự khoảng trắng khác. Ngoài ra, bạn có thể nhận đầu vào thông qua một đối số dòng lệnh.
Chương trình của bạn sẽ phản hồi chính xác với đầu vào tiêu cực và có thể xử lý ít nhất các số nguyên có chữ ký 32 bit.
Đầu ra
Chương trình của bạn sẽ xuất ra, ở một số dạng có thể quan sát được, cách ngắn nhất (trong các ký tự không phải khoảng trắng) có thể để viết số n
dưới dạng tổng, hiệu hoặc chia một hoặc nhiều giá trị thập lục phân. Có nhiều hơn một cách để giải quyết vấn đề này, và không có yêu cầu nào là bạn ủng hộ bất kỳ đầu ra có độ dài bằng nhau hơn bất kỳ cách nào khác.
Đầu ra phải ở dạng A % A % A...
có A
giá trị thập lục phân theo sau 0x
chỉ chứa các chữ số A-F a-f
và %
là một trong các ký hiệu -+/
. Hãy /
mô tả phân chia số nguyên, không phải dấu phẩy động.
(Lưu ý rằng đầu ra của bạn sẽ dẫn đến n
khi đánh giá các phân chia trước, từ trái sang phải và sau đó cộng và trừ, từ trái sang phải, như quy ước.)
Các trường hợp thử nghiệm
Đầu ra đầu vào
1
0xF - 0xE
(hoặc0xF-0xE
hoặc0xB-0xA
hoặc0xd - 0xc
hoặc0xF/0xF
)15
0xF
255
0xFF
30
0xF + 0xF
Ghi điểm và nội quy
Đây là mã golf. Điểm sơ bộ của bạn là số byte trong tệp nguồn của bạn.
Bạn KHÔNG được sử dụng bất kỳ chữ số nào 1-9
trong nguồn của mình.
Bạn CÓ THỂ sử dụng các ký hiệu !@#$%^&*(
trong nguồn của mình, nhưng mỗi ký tự có mức phạt +20 cho điểm của bạn.
Chương trình của bạn có thể được thay thế bằng một hàm lấy tham n
số miễn là hàm đó tạo ra một số dạng đầu ra có thể đọc được của con người. Giá trị trả về của hàm của bạn KHÔNG được tính là đầu ra.
Sơ hở tiêu chuẩn không được phép.
Điểm số thấp nhất chiến thắng! Chúc may mắn!
Tôi đã làm điều gì đó lên định dạng / đặt câu hỏi / rõ ràng-khôn ngoan? Cho tôi biết! Đây là lần đầu tiên tôi gửi đến trang web này!