Bir sayısal temel sistemdeki bir dizi bloğu alan bir rutin oluşturun ve bunları başka bir sayısal temel sistemdeki bir dizi bloğa dönüştürün. Hem gelen hem de sistemler isteğe bağlıdır ve bir parametre olarak kabul edilmelidir. Giriş dizisi isteğe bağlı bir uzunluk olabilir (dizi uzunluklarının diziyle birlikte saklanmadığı bir dil kullanılıyorsa, örneğin C, işleve bir length parametresi iletilmelidir).
Nasıl olması gerektiği aşağıda açıklanmıştır:
fromArray = [1, 1]
fromBase = 256
toBase = 16
result = convertBase(fromArray, fromBase, toBase);
Hangisi geri dönmeli [0, 1, 0, 1]
ya da büyük olasılıkla [1, 0, 1]
( 0
yanıtın değerini değiştirmedikleri için önde gelenler isteğe bağlıdır).
İşte bazı test vektörleri:
Kimlik testi vektör
fromArray = [1, 2, 3, 4] fromBase = 16 toBase = 16 result = [1, 2, 3, 4]
Önemsiz Test Vektör
fromArray = [1, 0] fromBase = 10 toBase = 100 result = [10]
Büyük Test Vektör
fromArray = [41, 15, 156, 123, 254, 156, 141, 2, 24] fromBase = 256 toBase = 16 result = [2, 9, 0, 15, 9, 12, 7, 11, 15, 14, 9, 12, 8, 13, 0, 2, 1, 8]
Gerçekten büyük Test vektör
fromArray = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] fromBase = 2 toBase = 10 result = [1, 2, 3, 7, 9, 4, 0, 0, 3, 9, 2, 8, 5, 3, 8, 0, 2, 7, 4, 8, 9, 9, 1, 2, 4, 2, 2, 3]
Eşit Olmayan Temel Vektör
fromArray = [41, 42, 43] fromBase = 256 toBase = 36 result = [1, 21, 29, 22, 3]
Diğer kriterler / kurallar:
Tüm tamsayı değişkenleri, tüm aklı başında girdi aralıkları için standart bir 32 bit işaretli tam sayıya sığmalıdır.
Aracı 32 bit işaretli tam sayı dizisinden başka bir şey olmadığı sürece, bir ara temsile dönüştürebilirsiniz.
2'den 256'ya kadar üsleri ele almayı bekleyin. Bundan daha yüksek üsleri desteklemeye gerek yoktur (ancak isterseniz elbette).
Giriş ve çıkış boyutlarını en az 1000 öğeye kadar işlemeyi bekleyin . 2 ^ 32-1 öğelerine ölçeklenen bir çözüm daha iyi olurdu, ancak 1000 gayet iyi.
Bu mutlaka bu kuralları karşılayacak en kısa koda sahip olmakla ilgili değildir. En temiz ve en zarif koda sahip olmakla ilgilidir.
Şimdi, bu tam olarak önemsiz değil, bu yüzden neredeyse işe yarayan bir cevap kabul edilebilir!