Giới thiệu:
Chúng ta hãy xem một Máy tính tiêu chuẩn trong Windows:
Đối với thử thách này, chúng ta sẽ chỉ nhìn vào các nút sau và bỏ qua mọi thứ khác:
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
Thử thách:
Đầu vào:
Bạn sẽ nhận được hai đầu vào:
- Một là một cái gì đó để chỉ ra góc quay theo gia số 90 độ
- Cái còn lại là một danh sách các tọa độ đại diện cho các nút được nhấn trên máy tính xoay.
Dựa trên đầu vào đầu tiên, chúng tôi xoay bố cục được đề cập ở trên theo chiều kim đồng hồ với bước tăng 90 độ. Vì vậy, nếu đầu vào là 0 degrees
, nó vẫn như cũ; nhưng nếu đầu vào là 270 degrees
, nó sẽ được quay ba lần theo chiều kim đồng hồ (hoặc một lần ngược chiều kim đồng hồ). Dưới đây là bốn cách bố trí có thể:
Default / 0 degrees:
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
90 degrees clockwise:
0 1 4 7
0 2 5 8
. 3 6 9
+ - * /
180 degrees:
+ . 0 0
- 3 2 1
* 6 5 4
/ 9 8 7
270 degrees clockwise / 90 degrees counterclockwise:
/ * - +
9 6 3 .
8 5 2 0
7 4 1 0
Các đầu vào thứ hai là danh sách các tọa độ trong bất kỳ định dạng hợp lý † . Ví dụ: mảng số nguyên 2D 0 chỉ số):
[[1,2],[2,3],[0,3],[1,0],[1,1]]
Đầu ra:
Chúng tôi xuất cả tổng, cũng như kết quả (và dấu bằng =
).
Ví dụ:
Vì vậy, nếu đầu vào là 270 degrees
và [[1,2],[2,3],[0,3],[1,0],[1,1]]
, đầu ra sẽ trở thành:
517*6=3102
Quy tắc thử thách:
- † Các đầu vào có thể ở bất kỳ định dạng hợp lý. Đầu vào đầu tiên có thể là
0-3
,1-4
,A-D
,0,90,180,270
, vv đầu vào thứ hai có thể là một 0-lập chỉ mục mảng 2D, 1-lập chỉ mục mảng 2D, một String, danh sách các điểm-đối tượng, vv Cuộc gọi của bạn. Thậm chí có thể hoán đổi tọa độ x và y so với các đầu vào ví dụ đã cho. Vui lòng cho biết các định dạng đầu vào bạn đã sử dụng trong câu trả lời của bạn! - Bạn được phép thêm khoảng trắng (tức là
517 * 6 = 3102
) nếu bạn muốn. - Bạn được phép thêm các số 0 ở sau dấu phẩy, tối đa là ba (tức là
3102.0
/3102.00
/3102.000
thay vì3102
hoặc0.430
thay vì0.43
). - Bạn không được phép thêm dấu ngoặc đơn trong đầu ra, vì vậy
(((0.6+4)-0)/2)/4=0.575
không phải là đầu ra hợp lệ. - Bạn được phép sử dụng các ký hiệu toán hạng khác cho ngôn ngữ của mình. Vì vậy
×
hoặc·
thay vì*
; hoặc là÷
thay vì/
; Vân vân. - Vì một máy tính tự động tính toán khi nhập toán hạng, bạn nên bỏ qua quyền ưu tiên của toán tử! Vì vậy,
10+5*3
sẽ dẫn đến45
((10+5)*3=45
), không25
(10+(5*3)=25
)
(tức là10
→+
→5
→*
(hiện tại nó sẽ hiển thị 15 trong màn hình) →3
→=
(bây giờ nó sẽ hiển thị câu trả lời45
)). Hãy ghi nhớ điều này khi sử dụngeval
và các chức năng tương tự trên tổng kết quả. - Sẽ không có trường hợp kiểm tra nào cho phép chia 0.
- Kết quả sẽ không có bất kỳ trường hợp thử nghiệm nào có nhiều hơn ba chữ số thập phân, do đó không cần làm tròn kết quả.
- Sẽ không có bất kỳ trường hợp thử nghiệm nào mà nhiều toán hạng theo nhau hoặc khi hai dấu chấm theo nhau.
- Sẽ không có trường hợp kiểm tra nào cho số âm. Dấu trừ (
-
) sẽ chỉ được sử dụng làm toán hạng, không âm. - Sẽ không có trường hợp kiểm tra nào
.##
mà không có số dẫn đầu trước dấu phẩy (nghĩa là2+.7
sẽ không phải là trường hợp kiểm tra hợp lệ, nhưng2+0.7
có thể).
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp, các chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, xin vui lòng thêm một lời giải thích nếu cần thiết.
Các trường hợp thử nghiệm:
Input: 270 degrees & [[1,2],[2,3],[0,3],[1,0],[1,1]]
Output: 517*6=3102
Input: 90 degrees & [[3,1],[0,0],[0,1],[3,3],[2,0],[0,3],[0,0],[0,2],[3,0],[2,1]]
Output: 800/4+0.75=200.75
Input: 0 degrees & [[0,0],[1,0],[2,0],[3,0],[1,2],[2,1],[2,2]]
Output: 789/263=3
Input: 180 degrees & [[3,0],[1,0],[1,2],[0,0],[3,2],[0,1],[2,0],[0,3],[2,1],[0,3],[3,2]]
Output: 0.6+4-0/2/4=0.575
1+-*/+-*/2
sẽ cung cấp cho 0.5
máy tính Windows (10).
[1,3],
2+.7
?