Arka fon
Buradaki çoğu insan birkaç temel sisteme aşina olmalıdır: ondalık, ikili, onaltılık, sekizli. Örneğin onaltılık sistemde, sayı 12345 16 temsil edeceğini
1*16^4 + 2*16^3 + 3*16^2 + 4*16^1 + 5*16^0
Genellikle tabanın (burada 16
) rakamdan basamağa değişmesini beklemediğimizi unutmayın .
Bu olağan konum sistemlerinin genelleştirilmesi, her bir basamak için farklı bir sayısal taban kullanmanıza izin verir. Örneğin, biz ondalık ve ikili sistem arasında değişen edildi, numarayı (en az önemli basamak taban 10 ile başlayan) 190.315 [2,10] temsil eder
1*10*2*10*2*10 + 9*2*10*2*10 + 0*10*2*10 + 3*2*10 + 1*10 + 5 = 7675
Bu üs olarak belirtiyoruz [2,10]
. En sağdaki taban, en küçük anlamlı basamağa karşılık gelir . Daha sonra, basamaklardan (sola) geçerken, tabanlardan daha fazla basamak varsa, etrafı sararsınız.
Daha fazla okuma için Wikipedia'ya bakınız .
Meydan okuma
Basamaklı bir listesi verilmiştir, bir program ya da işlev Yazın D
bir giriş baz I
ve bir çıkış baz O
ile temsil edilen tam sayı dönüştürür D
tabanından I
tabanına O
. STDIN, ARGV veya işlev bağımsız değişkeni ile girdi alabilir ve sonucu döndürebilir veya STDOUT'a yazdırabilirsiniz.
Varsayabilirsiniz:
- içindeki rakamlar, bu
I
veO
daha bütün büyüktür1
. I
veO
boş olmayan bulunmaktadır.- Girilen numaranın verilen tabanda geçerli olması (yani tabanından daha büyük bir rakam olmaması).
D
boş olabilir (temsil eden 0
) veya başında sıfır olabilir. Çıktınız önde gelen sıfır içermemelidir. Özellikle, temsil eden bir sonuç 0
boş bir liste olarak döndürülmelidir.
Yerleşik veya 3. taraf temel dönüştürme işlevlerini kullanmamalısınız.
Bu kod golf, en kısa cevap (bayt cinsinden) kazanır.
Örnekler
D I O Result
[1,0,0] [10] [2] [1,1,0,0,1,0,0]
[1,0,0] [2] [10] [4]
[1,9,0,3,1,5] [2,10] [10] [7,6,7,5]
[1,9,0,3,1,5] [2,10] [4,3,2] [2,0,1,1,0,1,3,0,1]
[52,0,0,0,0] [100,7,24,60,60] [10] [3,1,4,4,9,6,0,0]
[0,2,10] [2,4,8,16] [42] [1,0]
[] [123,456] [13] []
[0,0] [123,456] [13] []
[]
giriş ise üretmek istiyorum[0]