Tantangan
Diberikan bilangan bulat non-negatif, keluaran apakah mungkin untuk dua tanggal (dari kalender Gregorian) berbeda dengan berapa tahun untuk berbagi satu hari dalam seminggu. Satu tahun diasumsikan sebagai tahun kabisat baik jika itu dibagi dengan 4 tetapi tidak oleh 100, atau jika itu dibagi dengan 400.
Output mungkin:
- falsey / truthy (dalam orientasi manapun)
- ada dua nilai yang berbeda
- satu nilai berbeda dan satu menjadi lainnya
- dengan kode pengembalian program
- oleh kesuksesan / kesalahan
- dengan cara apa pun yang masuk akal lainnya - tanyakan saja apakah Anda curiga itu kontroversial
Tetapi tidak dengan dua set nilai yang tidak berbeda, kecuali untuk falsey / truthy (karena ini akan memungkinkan no-op!)
Detail
Ini adalah apakah input tersebut adalah anggota urutan OEIS A230995 .
Anggota:
0, 5, 6, 7, 11, 12, 17, 18, 22, 23, 28, 29, 33, 34, 35, 39, 40, 45, 46, 50, 51, 56, 57, 61, 62, 63, 67, 68, 73, 74, 78, 79, 84, 85, 89, 90, 91, 95, 96, 101, 102, 106, 107, 108, 112, 113, 114, 117, 118, 119, 123, 124, 125, 129, 130, 131, 134, 135, 136, 140, 141, 142, 145, 146, 147, 151, 152, 153, 157, 158, 159, 162, 163, 164, 168, 169, 170, 173, 174, 175, 179, 180, 181, 185, 186, 187, 190, 191, 192, 196, 197, 198, 202, 203, 204, 208, 209, 210, 213, 214, 215, 219, 220, 221, 225, 226, 227, 230, 231, 232, 236, 237, 238, 241, 242, 243, 247, 248, 249, 253, 254, 255, 258, 259, 260, 264, 265, 266, 269, 270, 271, 275, 276, 277, 281, 282, 283, 286, 287, 288, 292, 293, 294, 298, 299, 304, 305, 309, 310, 311, 315, 316, 321, 322, 326, 327, 332, 333, 337, 338, 339, 343, 344, 349, 350, 354, 355, 360, 361, 365, 366, 367, 371, 372, 377, 378, 382, 383, 388, 389, 393, 394, 395
plus
400, 405, 406, 407, 411, ...
Bukan anggota:
1, 2, 3, 4, 8, 9, 10, 13, 14, 15, 16, 19, 20, 21, 24, 25, 26, 27, 30, 31, 32, 36, 37, 38, 41, 42, 43, 44, 47, 48, 49, 52, 53, 54, 55, 58, 59, 60, 64, 65, 66, 69, 70, 71, 72, 75, 76, 77, 80, 81, 82, 83, 86, 87, 88, 92, 93, 94, 97, 98, 99, 100, 103, 104, 105, 109, 110, 111, 115, 116, 120, 121, 122, 126, 127, 128, 132, 133, 137, 138, 139, 143, 144, 148, 149, 150, 154, 155, 156, 160, 161, 165, 166, 167, 171, 172, 176, 177, 178, 182, 183, 184, 188, 189, 193, 194, 195, 199, 200, 201, 205, 206, 207, 211, 212, 216, 217, 218, 222, 223, 224, 228, 229, 233, 234, 235, 239, 240, 244, 245, 246, 250, 251, 252, 256, 257, 261, 262, 263, 267, 268, 272, 273, 274, 278, 279, 280, 284, 285, 289, 290, 291, 295, 296, 297, 300, 301, 302, 303, 306, 307, 308, 312, 313, 314, 317, 318, 319, 320, 323, 324, 325, 328, 329, 330, 331, 334, 335, 336, 340, 341, 342, 345, 346, 347, 348, 351, 352, 353, 356, 357, 358, 359, 362, 363, 364, 368, 369, 370, 373, 374, 375, 376, 379, 380, 381, 384, 385, 386, 387, 390, 391, 392, 396, 397, 398, 399
plus
401, 402, 403, 404, 408, ...
Ini adalah kode-golf sehingga jawaban terpendek di setiap bahasa menang!
Jawaban:
MATL , 17 byte
Program berhenti jika input milik urutan, atau berjalan tanpa batas (infinite loop) sebaliknya.
Biarkan
n
menjadi input. Kode mengeksekusi loop yang menguji tahun1
dan1+n
; kemudian2
dan2+n
; ... sampai hari yang cocok dalam seminggu ditemukan. Jika tidak ada yang cocok, loop berjalan tanpa batas.Fungsi keanggotaan
n
adalah periodik dengan periode400
. Oleh karena itu, paling banyak400
iterasi diperlukan jikan
termasuk dalam urutan. Ini membutuhkan kurang dari 20 detik di Try It Online. Sebagai bukti batas atas ini, inilah program yang dimodifikasi yang membatasi jumlah iterasi hingga 400 (dengan menambahkan@401<*
di akhir). Perhatikan juga bahwa ikatan ini longgar, dan beberapa detik biasanya sudah cukup.Cobalah online!
Penjelasan
Versi lama, 24 byte
Output adalah
0
jika input milik urutan, atau1
sebaliknya.Cobalah online!
Penjelasan
sumber
Python 2 , 58 byte
Cobalah online!
Formula langsung.
sumber
5*u/4%7-3
bukan(u-8)*5/4%7
.1/(...)
bukanprint ...
.Jelly ,
2018 byteOutput 1 untuk anggota, 0 untuk non-anggota.
Cobalah online!
Bagaimana itu bekerja
sumber
Python 2 , 83 byte
Cobalah online!
Port langsung dari jawaban Haskell saya .
sumber
Haskell , 76 byte
-35 byte terima kasih kepada Jonathan Allan. -2 byte terima kasih kepada Lynn.
Cobalah online!
Menggunakan algoritma program OEIS PARI.
sumber
5*(n#4)
bisa5*n#4
juga!Pyth , 32 byte
Coba di sini!(Klik "Alihkan ke Test Suite" untuk memverifikasi lebih banyak kasus uji sekaligus)
Bagaimana?
Menggunakan trik keren yang baru saja saya tambahkan ke utas "Tips untuk bermain golf di Pyth".
sumber
Python 3 ,
110107 byteCobalah online!
-3 byte terima kasih kepada Tn. Xcoder.
sumber