+/{13∊⍎,⍉3↑¯5↑⍉2↓cal⍵}¨⎕,¨⍳12
ลองออนไลน์!
⍳ 12
จำนวนเต็มหนึ่งถึงสิบสอง
⎕ ,¨
รับข้อมูลเข้าเป็นตัวเลขและเสริมแต่ละหมายเลขสิบสอง
{
... }¨
ในแต่ละคู่ใช้ฟังก์ชัน ...
cal⍵
รับปฏิทินสำหรับปีนั้น
2 ↓
ปล่อยสองแถว (คำบรรยายภาพและวัน)
⍉
ไขว้ (เพื่อให้เราสามารถที่อยู่คอลัมน์แทนแถว)
¯5 ↑
ใช้ตัวเลขห้าตัวสุดท้าย (สองหลักสำหรับแต่ละวันศุกร์และวันเสาร์และอีกหนึ่งช่องว่าง)
3 ↑
ใช้สองคนแรก (ตัวเลขสองหลักสำหรับวันศุกร์บวกด้วยช่องว่าง)
⍉
ไขว้ (ดังนั้นเราจึงได้อ่านคำสั่ง)
,
คลี่คลาย
⍎
รันเป็นนิพจน์ APL (ให้รายการวันที่ของวันศุกร์)
13 ∊
สิบสามเป็นสมาชิกของรายการนั้นหรือไม่?
+/
รวม 12 Booleans
การใช้อัลกอริทึมของ @ Wrzlprmftเราสามารถทำได้โดยไม่ต้องมีไลบรารีสำหรับ 53 ไบต์:
'21232211321211'⊃⍨14|2 3 ¯1+.×⊢,0≠.=400 100 4∘.|-∘0 1
-∘0 1
ลบศูนย์และหนึ่ง
400 100 4 ∘.|
ตารางเศษที่เหลือสำหรับสองปี (ข้าม) หารด้วยตัวเลขเหล่านี้ (ลง)
0 ≠.=
"ผลิตภัณฑ์" ภายในด้วย 0 แต่ใช้≠และ = แทน +. ×
⊢ ,
เพิ่มปีอาร์กิวเมนต์ที่ไม่ได้แก้ไข
2 3 ¯1 +.×
ผลิตภัณฑ์ภายในด้วยตัวเลขเหล่านี้
14 |
ส่วนที่เหลือเมื่อหารด้วยสิบสี่
'21232211321211' ⌷⍨
จัดทำดัชนีลงในสายอักขระนี้