Değişken bit sayısı, 0 veya daha fazla bitlik bir dizidir. Yani [0, 1]
bit değişken sayıdır, ama böyledir []
.
Negatif olmayan bir tamsayı verildiğinde, her tamsayı bir dizi ile bire bir (iki yönlü) eşleme olacak şekilde değişken sayıda bit döndüren bir işlev veya program yazın.
Bu tür eşlemelerin sonsuz bir miktarı vardır, istediğiniz gibi bir tane oluşturmakta özgürsünüz, ancak bire bir olmalıdır . Eşlemeniz isteğe bağlı boyutta bir tamsayı için kavramsal olarak bire bir olmalıdır , ancak tercih ettiğiniz dilde (örn . C'ler) türlerin sayısal sınırları nedeniyle uygulamanız büyük tamsayılar için başarısız olursa sorun olmaz int
.
Bire bir eşleme olmayan şeyin bir örneği olarak, tamsayının ikili rakamlarını listelemek basittir. Böyle bir sistemde, 5 olur [1, 0, 1]
(ya da 0b101
), ancak, çünkü bire bir değil 0b0101
ya [0, 1, 0, 1]
da 5 anlamına gelir.
Bir tamsayıyı atlarsa (örneğin 5 için işe yaramazsa) bir eşlemenin bire bir olmadığı oldukça açık olmalıdır, ancak değişken bir bit dizisini atlamanın da bir tane olmadığını açıkça belirtmek isterim. -birine. Dahil olmak üzere olası her değişken bit dizisine eşlemelisiniz []
.
Bayt cinsinden en kısa kod kazanır.