I poteri che vogliono essere in grado di convertire rapidamente qualsiasi numero che hanno nella propria base numerica utilizzando qualsiasi formato desiderino.
Ingresso
Il tuo programma deve accettare 3 parametri.
- Numero: il numero di stringa da convertire
- InputFormat: la stringa di base in cui si trova attualmente il numero
- OutputFormat: la stringa di base in cui convertire il numero.
Produzione
Il programma deve convertire il Number
dalla vecchia base numerica InputFormat
alla nuova base numericaOutputFormat
Esempi
("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"
addizionale
Il nuovo test 77 di base non è richiesto se funziona
- se sei in una lingua in cui devi prima convertirti in un numero e sei bloccato in 32 Bit puoi saltarlo.
- in quanto è un test aggiuntivo.
Tutti gli esempi sono stati generati da PHP 7.2 con l'estensione bcmath usando il seguente codice (var min ma codice formattato). probabilmente ci sarà un modo più breve, questo è solo il modo in cui mi sono inventato per il sistema con cui avevo bisogno di farlo, sarebbe bello vedere se qualcuno potesse trovare una versione più breve.
PHP 7.2 (bcmath - estensione) 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;
}
punteggio
Questo è il codice golf; vince il codice più breve. Si applicano scappatoie standard.
["zX", "tXdsyqzSDRP02", "brFNC02bc"] => "cb"
. (o qualunque cosa dovrebbe essere, se non è corretto)