자신이 원하는 숫자를 원하는 형식을 사용하여 자신의 숫자 기반으로 신속하게 변환 할 수있는 기능.
입력
프로그램은 3 개의 매개 변수를 승인해야합니다.
- 숫자 : 변환 할 문자열 번호
- InputFormat : 숫자가 현재있는 기본 문자열
- OutputFormat : 숫자를 변환 할 기본 문자열입니다.
산출
프로그램은 Number
이전 숫자베이스 InputFormat
에서 새로운 숫자베이스 로 변환해야합니다OutputFormat
예
("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"
추가
새로운 기본 77 테스트는 작동하는 경우 소품이 필요하지 않습니다.
- 먼저 숫자로 변환해야하고 32 비트 내에 잠겨있는 언어라면 건너 뛸 수 있습니다.
- 추가 테스트이므로
모든 예제는 다음 코드 (vars mins이지만 코드 형식)를 사용하여 bcmath 확장명을 가진 PHP 7.2에서 생성되었습니다. 아마도 이것이 내가 이것을 위해 필요한 시스템을 위해 생각해 낸 방법 일 것입니다 더 짧은 방법이있을 것입니다 누군가가 더 짧은 버전을 생각 해낼 수 있다면 좋을 것입니다.
PHP 7.2 (bcmath-확장) 614 바이트
<?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;
}
채점
이것은 코드 골프입니다. 가장 짧은 코드가 승리합니다. 표준 허점이 적용됩니다.
["zX", "tXdsyqzSDRP02", "brFNC02bc"] => "cb"
좋습니다. (또는 그것이 정확하지 않은 경우, 실제로해야 할 일)