+/{13∊⍎,⍉3↑¯5↑⍉2↓cal⍵}¨⎕,¨⍳12
Hãy thử trực tuyến!
⍳ 12
các số nguyên từ một đến mười hai
⎕ ,¨
lấy đầu vào số và thêm vào mỗi mười hai số
{
... }¨
trên mỗi cặp, áp dụng các chức năng ...
cal⍵
lấy lịch cho tháng đó
2 ↓
thả hai hàng (chú thích và ngày)
⍉
hoán vị (để chúng ta có thể giải quyết các cột thay vì các hàng)
¯5 ↑
lấy năm số cuối (hai chữ số cho mỗi thứ Sáu và thứ Bảy cộng với một khoảng trắng)
3 ↑
lấy hai số đầu tiên (hai chữ số cho thứ Sáu cộng với một khoảng trắng)
⍉
hoán vị (để chúng ta có được thứ tự đọc)
,
rốn
⍎
thực hiện dưới dạng biểu thức APL (đưa ra danh sách các ngày thứ Sáu)
13 ∊
mười ba là thành viên của danh sách đó?
+/
tổng cộng 12 Booleans
Sử dụng thuật toán của @ Wrzlprmft , chúng tôi có thể làm điều đó mà không cần thư viện cho 53 byte:
'21232211321211'⊃⍨14|2 3 ¯1+.×⊢,0≠.=400 100 4∘.|-∘0 1
-∘0 1
trừ 0 và 1
400 100 4 ∘.|
bảng phân chia còn lại trong hai năm (qua) chia cho các số này (xuống)
0 ≠.=
"sản phẩm" bên trong có 0, nhưng sử dụng và = thay vì +. ×
⊢ ,
chuẩn bị năm đối số không thay đổi
2 3 ¯1 +.×
sản phẩm bên trong với những con số này
14 |
phần còn lại khi chia cho mười bốn
'21232211321211' ⌷⍨
lập chỉ mục vào chuỗi này