যে শক্তিগুলি তারা চাইলে যে কোনও ফর্ম্যাট ব্যবহার করে যে কোনও সংখ্যাকে দ্রুত তাদের নিজস্ব নম্বর বেসে রূপান্তর করতে সক্ষম হতে চায়।
ইনপুট
আপনার প্রোগ্রামটি অবশ্যই 3 টি পরামিতি গ্রহণ করবে।
- সংখ্যা: রূপান্তরিত করতে স্ট্রিং নম্বর
- ইনপুট ফরম্যাট: বেস স্ট্রিংটি বর্তমানে রয়েছে
- আউটপুটফর্ম্যাট: বেস স্ট্রিং যা সংখ্যায় রূপান্তর করতে হয়।
আউটপুট
আপনার প্রোগ্রামটি অবশ্যই 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 বিটের মধ্যে লক হয়ে থাকে তবে আপনি এড়িয়ে যেতে পারেন sk
- এটি একটি অতিরিক্ত পরীক্ষা হিসাবে।
সমস্ত কোড নীচের কোডটি ব্যবহার করে বিসিএমথ এক্সটেনশান সহ পিএইচপি 7.2 দ্বারা উত্পন্ন হয়েছিল (ওয়ার্স মিনিট তবে কোড ফর্ম্যাট করা)। এখানে একটি সংক্ষিপ্ততর উপায় হতে পারে আমি ঠিক এই পদ্ধতিটি নিয়ে এসেছি সিস্টেমটির জন্য আমার এটি করার দরকার ছিল তা দেখে যদি কেউ সংক্ষিপ্ত সংস্করণ নিয়ে আসতে পারে তবে ভাল লাগবে।
পিএইচপি 7.2 (বিসিএমথ - এক্সটেনশন) 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"
। (বা যা আসলেই হওয়া উচিত, যদি তা ভুল হয়)