Latar Belakang
The Hamming berat dari integer adalah jumlah yang dalam representasi biner. Untuk tantangan ini, bilangan bulat diwakili dengan 32 bit, dan mereka tidak ditandatangani.
Tantangan
Diberikan bilangan bulat antara 0 dan 2 ^ 32-1 (tidak termasuk), menghasilkan bilangan bulat yang berbeda dalam rentang yang sama, dan juga dengan bobot Hamming yang sama.
Contohnya
Input (Decimal) | Input (Binary) | Hamming weight | Possible output (Decimal)
46 | 0b0010 1110 | 4 | 15
12 | 0b0000 1100 | 2 | 3
1 | 0b0000 0001 | 1 | 2
3 | 0b0000 0011 | 2 | 6
2^31 | 0b1000....0 | 1 | 1
2^31+2 | 0b1000...10 | 2 | 3
2^32-5 | 0b1111..011 | 31 | 2^31-1
2^32-2 | 0b1111....0 | 31 | 2^31-1
0 | 0b0000 0000 | 0 | None (This case need not be handled)
2^32-1 | 0b1111....1 | 32 | None (This case need not be handled)
Mencetak gol
Ini adalah kode-golf , sehingga solusi dalam byte paling sedikit di setiap bahasa menang.
2^31+2
, saya akan mengulangi bahwa saya mengatakan angka ganjil . Jawaban tersebut hanya gagal ketika kedua tertinggi dan bit terendah adalah 1
.