Kekuatan yang ingin dapat dengan cepat mengkonversi nomor apa pun yang mereka miliki menjadi basis nomor mereka sendiri menggunakan format apa pun yang mereka inginkan.
Memasukkan
Program Anda harus menerima 3 parameter.
- Nomor: Nomor string yang akan dikonversi
- InputFormat: string dasar nomor saat ini
- OutputFormat: string dasar yang nomornya akan dikonversi.
Keluaran
Program Anda harus mengonversi Number
dari basis angka lama InputFormat
ke basis angka baruOutputFormat
Contohnya
("1","0123456789","9876543210") = "8"
("985724","9876543210","0123456789ABCDEF") = "37C3"
("FF","0123456789ABCDEF","0123456789") = "255"
("FF","0123456789ABCDEF","01234567") = "377"
("18457184548971248772157", "0123456789","Aa0Bb1Cc2Dd3Ee4Ff5Gg6Hh7Ii8Jj9Kk,Ll.Mm[Nn]Oo@Pp#Qq}Rr{Ss-Tt+Uu=Vv_Ww!Xx%Yy*Zz") = ",sekYFg_fdXb"
Tambahan
Tes base 77 baru tidak diperlukan alat peraga jika itu bekerja
- jika Anda menggunakan bahasa tempat Anda harus mengonversi ke nomor terlebih dahulu dan dikunci dalam 32Bit Anda dapat melewatinya.
- karena ini merupakan tes tambahan.
Semua contoh dihasilkan oleh PHP 7.2 dengan ekstensi bcmath menggunakan kode berikut (vars mnt tetapi kode diformat). mungkin akan ada cara yang lebih pendek ini hanya cara saya datang dengan sistem saya perlu melakukan ini dengan akan menyenangkan untuk melihat apakah ada yang bisa datang dengan versi yang lebih pendek.
PHP 7.2 (bcmath - ekstensi) 614 byte
<?php
function f($a, $b, $c)
{
$d= str_split($b,1);
$e= str_split($c,1);
$f= str_split($a,1);
$g=strlen($b);
$h=strlen($c);
$k=strlen($a);
$r='';
if ($c== '0123456789')
{
$r=0;
for ($i = 1;$i <= $k; $i++)
$retval = bcadd($retval, bcmul(array_search($f[$i-1], $d),bcpow($g,$k-$i)));
return $r;
}
if ($b!= '0123456789')
$l=f($a, $b, '0123456789');
else
$l= $a;
if ($l<strlen($c))
return $e[$l];
while($l!= '0')
{
$r= $e[bcmod($l,$h)].$r;
$l= bcdiv($l,$h,0);
}
return $r;
}
Mencetak gol
Ini adalah kode golf; kode menang paling pendek. Celah standar berlaku.
["zX", "tXdsyqzSDRP02", "brFNC02bc"] => "cb"
. (atau apa pun yang seharusnya, jika itu salah)