+/{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