Pendahuluan (dapat diabaikan)
Menempatkan semua angka positif dalam urutan regulernya (1, 2, 3, ...) agak membosankan, bukan? Jadi di sini adalah serangkaian tantangan seputar permutasi (perombakan) dari semua angka positif. Ini adalah tantangan kedua dalam seri ini. Tantangan pertama dapat ditemukan di sini .
Dalam tantangan ini, kami menggunakan kode Gray untuk menyusun ulang bilangan asli. Kode abu-abu, atau "kode biner tercermin" adalah pengkodean biner sedemikian rupa sehingga dua nilai berturut-turut berbeda hanya dalam satu bit. Aplikasi praktis dari pengkodean ini adalah menggunakannya dalam rotary encoders , maka referensi saya untuk "Turn My Way" .
Perhatikan bahwa pengkodean ini meninggalkan beberapa derajat kebebasan. Misalnya, mengikuti biner 1100, ada empat kemungkinan kode berikut: 1101, 1110, 1000 dan 0100. Inilah sebabnya saya akan mendefinisikan sebagai nilai terkecil, yang sebelumnya tidak digunakan yang hanya berbeda satu karakter dalam pengkodean biner. Urutan ini sesuai dengan A163252 .
Karena ini adalah tantangan "urutan murni", tugasnya adalah mengeluarkan untuk input diberikan , di mana adalah A163252 .
Tugas
Diberikan input integer , output dalam format integer ( bukan dalam format biner).
didefinisikan sebagai bilangan bulat paling positif yang tidak terjadi sebelumnya dalam urutan sehingga dan berbeda hanya dalam satu bit ketika ditulis dalam biner.
Catatan: pengindeksan berbasis 1 diasumsikan di sini; Anda dapat menggunakan pengindeksan berbasis 0, jadi , dll. Sebutkan ini dalam jawaban Anda jika Anda memilih untuk menggunakan ini.
Uji kasus
Input | Output
--------------
1 | 1
5 | 4
20 | 18
50 | 48
123 | 121
1234 | 1333
3000 | 3030
9999 | 9997
Aturan
- Input dan output adalah bilangan bulat (program Anda setidaknya harus mendukung input dan output dalam kisaran 1 hingga 32767)
- Input yang tidak valid (0, float, string, nilai negatif, dll.) Dapat mengakibatkan output yang tidak terduga, kesalahan atau (tidak) perilaku yang didefinisikan. Dalam A163252 , didefinisikan sebagai 0. Untuk tantangan ini, kita akan mengabaikan ini.
- Standar I / O aturan berlaku.
- Celah default dilarang.
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang
Catatan akhir
Lihat pertanyaan PP&CG terkait (tetapi tidak sama):
