Diberi nomor menentukan apakah itu nomor lipat.
Angka lipat adalah angka sedemikian rupa sehingga jika Anda mengambilnya representasi biner dan "melipatnya" menjadi dua, yaitu mengambil hasil perkalian XNOR dari bagian pertama dari angka dan bagian kedua dengan angka-angka secara terbalik, Anda akan mendapatkan nol.
Jika angka tersebut memiliki angka ganjil dalam biner, digit tengahnya harus 1 dan diabaikan saat dilipat.
Karena itu mungkin agak membingungkan saya akan memberikan beberapa contoh:
178
Representasi biner dari 178 adalah
10110010
Untuk melipat ini kita pertama membaginya menjadi dua
1011 0010
Kami membalikkan babak kedua
1011
0100
Dan kami XNOR dua bagian:
0000
Ini nol jadi ini adalah angka lipat.
1644
Representasi biner 1644 adalah
11001101100
Untuk melipat ini kita pertama membaginya menjadi dua
11001 1 01100
Bit tengah adalah 1 jadi kami membuangnya.
11001 01100
Kami membalikkan babak kedua
11001
00110
Dan kami XNOR dua bagian:
00000
Ini nol jadi ini adalah angka lipat.
4254
Representasi biner dari 4254 adalah
1000010011110
Untuk melipat ini kita pertama membaginya menjadi dua
100001 0 011110
Bit tengah adalah 0 jadi ini bukan angka lipat.
Tugas
Tugas Anda adalah mengambil angka positif dan mengembalikan kebenaran jika angka itu lipat dan palsu jika bukan. Ini adalah kode golf jadi cobalah untuk menjaga hitungan byte tetap rendah.
Uji Kasus
Berikut adalah 99 nomor lipat pertama:
[1, 2, 6, 10, 12, 22, 28, 38, 42, 52, 56, 78, 90, 108, 120, 142, 150, 170, 178, 204, 212, 232, 240, 286, 310, 346, 370, 412, 436, 472, 496, 542, 558, 598, 614, 666, 682, 722, 738, 796, 812, 852, 868, 920, 936, 976, 992, 1086, 1134, 1206, 1254, 1338, 1386, 1458, 1506, 1596, 1644, 1716, 1764, 1848, 1896, 1968, 2016, 2110, 2142, 2222, 2254, 2358, 2390, 2470, 2502, 2618, 2650, 2730, 2762, 2866, 2898, 2978, 3010, 3132, 3164, 3244, 3276, 3380, 3412, 3492, 3524, 3640, 3672, 3752, 3784, 3888, 3920, 4000, 4032, 4222, 4318, 4462, 4558]
0
, jadi tidak. (Mungkin patut memiliki contoh ketiga yang bekerja seperti ini.) Sama berlaku untuk 18.