Thứ hai Mini-Golf: Một loạt các thử thách golf-code ngắn , được đăng (hy vọng!) Vào mỗi thứ Hai.
Xin lỗi vì đến muộn; Tôi nhận ra 90% cách viết ra một ý tưởng khác rằng đó là một bản sao.
Gia đình tôi khá lớn nên chúng tôi ăn rất nhiều thức ăn. Chúng ta thường cần phải tăng gấp đôi, gấp ba hoặc thậm chí gấp bốn lần công thức nấu ăn để tạo ra đủ thực phẩm! Nhưng khi nhân các phép đo có thể là một nỗi đau, thật tuyệt khi có một chương trình để làm điều này cho chúng tôi.
Thử thách
Thách thức của bạn là tạo ra một chương trình hoặc hàm lấy số đo là số N và chữ L và trả về cùng một phép đo, đơn giản hóa càng nhiều càng tốt. Đây là các đơn vị đo lường cần thiết (tất cả đều là người Mỹ, giống như gia đình tôi) và các chữ cái tương ứng của chúng:
1 cup (c) = 16 tablespoons (T) = 48 teaspoons (t)
1 pound (l) = 16 ounces (o)
1 gallon (g) = 4 quarts (q) = 8 pints (p) = 128 fluid ounces (f)
"Đơn giản hóa càng nhiều càng tốt" có nghĩa là:
- Sử dụng đơn vị đo lường lớn nhất có thể. Mỗi đơn vị có thể có phần còn lại là 1/4, 1/3, 1/2, 2/3 hoặc 3/4.
- Biến kết quả thành một số hỗn hợp, nếu cần thiết.
Ví dụ, 4 o
là bốn ounce, trở thành 1/4 l
, một phần tư pound. 8 t
, 8 muỗng cà phê, trở thành 2 2/3 T
.
Chi tiết
- Đầu vào có thể được thực hiện trong bất kỳ định dạng hợp lý; tương tự với đầu ra. (
1 t
,1,"t"
,1\nt
, Vv) - Hãy chắc chắn rằng bất kỳ phần phân đoạn được xử lý đúng. (
11/4
thay vì1 1/4
không được phép.) - Con số đó sẽ luôn là một hỗn số, và sẽ luôn luôn có một mẫu số
2
,3
hoặc4
(hoặc không có). (không1 1/8 T
, không1.5 T
, v.v.) - Do kết quả của những điều trên, không bao giờ chuyển đổi đi xuống (ví dụ như cốc sang muỗng) là cần thiết.
- Bức thư sẽ luôn là một trong những chữ cái được liệt kê ở trên (
Tcfglopqt
).
Các trường hợp thử nghiệm
Đây là một danh sách lớn, hy vọng bao gồm tất cả các loại trường hợp:
Input | Output
--------+--------
1/2 t | 1/2 t
3/4 t | 1/4 T
1 t | 1/3 T
1 1/2 t | 1/2 T
2 t | 2/3 T
2 1/4 t | 3/4 T
2 1/2 t | 2 1/2 t
3 t | 1 T
10 t | 3 1/3 T
16 t | 1/3 c
5 1/3 T | 1/3 c
8 T | 1/2 c
16 T | 1 c
36 T | 2 1/4 c
1/4 c | 1/4 c
1024 c | 1024 c
1 o | 1 o
4 o | 1/4 l
5 1/3 o | 1/3 l
5 2/3 o | 5 2/3 o
8 o | 1/2 l
28 o | 1 3/4 l
28 l | 28 l
2 f | 2 f
4 f | 1/4 p
8 f | 1/4 q
16 f | 1/2 q
32 f | 1/4 g
64 f | 1/2 g
128 f | 1 g
2/3 p | 1/3 q
1 1/3 p | 2/3 q
2 p | 1/4 g
1 q | 1/4 g
Chấm điểm
Nhà bếp của chúng tôi rất nhỏ, vì vậy mã phải càng ngắn càng tốt, để không làm cho nhà bếp trở nên chật chội hơn. Mã hợp lệ ngắn nhất tính bằng byte thắng; tiebreaker đi đến trình mà đạt đến số byte cuối cùng của nó đầu tiên. Người chiến thắng sẽ được chọn vào thứ Hai tới, ngày 9 tháng 11. Chúc may mắn!
Xin lưu ý rằng thử thách này tương tự, nhưng không phải là bản sao của World Big Dosa .