+/{13∊⍎,⍉3↑¯5↑⍉2↓cal⍵}¨⎕,¨⍳12
Cobalah online!
⍳ 12 bilangan bulat satu sampai dua belas
⎕ ,¨ mengambil input numerik dan menambahkan masing-masing dari dua belas angka
{... }¨ pada masing-masing pasangan, terapkan fungsinya ...
cal⍵ dapatkan kalender untuk tahun-bulan itu
2 ↓ turunkan dua baris (keterangan dan hari)
⍉ transpos (jadi kita bisa membahas kolom alih-alih baris)
¯5 ↑ ambil lima terakhir (dua digit untuk masing-masing hari Jumat dan Sabtu ditambah satu spasi)
3 ↑ ambil dua yang pertama (dua digit untuk Jumat ditambah spasi)
⍉ transpos (jadi kami mendapat pesanan membaca)
, berlepasan
⍎ dieksekusi sebagai ekspresi APL (memberikan daftar tanggal Jumat)
13 ∊ Apakah tiga belas anggota dari daftar itu?
+/ jumlah 12 Boolean
Dengan menggunakan algoritma @ Wrzlprmft , kita dapat melakukannya tanpa pustaka untuk 53 byte:
'21232211321211'⊃⍨14|2 3 ¯1+.×⊢,0≠.=400 100 4∘.|-∘0 1
-∘0 1 kurangi nol dan satu
400 100 4 ∘.| tabel sisa pembagian selama dua tahun (lintas) dibagi dengan angka-angka ini (turun)
0 ≠.= "produk" dalam dengan 0, tetapi menggunakan ≠ dan = bukannya +. ×
⊢ , pertahankan tahun argumen yang tidak dimodifikasi
2 3 ¯1 +.× produk dalam dengan angka-angka ini
14 | pembagian divisi ketika dibagi empat belas
'21232211321211' ⌷⍨ indeks ke dalam string ini