जो शक्तियां किसी भी प्रारूप का उपयोग करके किसी भी संख्या को अपने स्वयं के संख्या आधार में जल्दी से परिवर्तित करने में सक्षम होना चाहती हैं।
इनपुट
आपके प्रोग्राम को 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 बिट के भीतर लॉक किया गया है तो आप इसे छोड़ सकते हैं।
- क्योंकि यह एक अतिरिक्त परीक्षा है।
सभी उदाहरणों को PHP 7.2 द्वारा bcmath एक्सटेंशन के साथ निम्न कोड (var mins but code formatted) का उपयोग करके तैयार किया गया था। वहाँ शायद एक छोटा रास्ता होगा यह सिर्फ जिस तरह से मैं सिस्टम के लिए आया था जो मुझे इस के साथ करने की ज़रूरत थी, यह देखना अच्छा होगा कि क्या कोई भी एक छोटे संस्करण के साथ आ सकता है।
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"
। (या जो कुछ भी वास्तव में होना चाहिए, अगर वह गलत है)