|
|
|
| В пятницу забыл с работы домой притащить свой вариант, в итоге только что до него добрался...может получу сколько-нибудь балов:)
<form action="index.php" method="post">
Введите десятичное число: <input type=text name=tnumber size=5> или
двоечное число: <input type=text name=dnumber size=5><br>
<input type=submit name="Преобразовать">
</form>
<?
function ttod($k)
{
$dn = "";
while ($k >= 2)
{
$m = $dn;
$dn = $k%2;
$dn = $dn.$m;
if ($k%2 == 0)
{
$k = $k/2;
}
else
{
$k = ($k-$k%2)/2;
}
}
if ($k == 1) $dn = "1".$dn;
if ($dn == 1) $dn = "0".$dn;
return $dn;
}
function dtot($k)
{
$dn = "";
$l = 0;
while ($k > 1)
{
$p = $k%10;
$k = ($k-$k%10)/10;
if ($p == 0)
{
$l++;
}
else
{
$dn += summ($p,$l);
$l++;
}
}
if ($k == 1) $dn += summ($k,$l);
return $dn;
}
function summ($n,$k)
{
$um = 2;
for($i=1;$i<$k;$i++)
{
$um = $um*2;
}
$n = $n*$um;
if($k==0) $n=$n;
return $n;
}
if ($_POST["tnumber"]) echo $_POST["tnumber"]."<sub>10</sub> = ".ttod($_POST["tnumber"])."<sub>2</sub>";
elseif ($_POST["dnumber"]) echo $_POST["dnumber"]."<sub>2</sub> = ".dtot($_POST["dnumber"])."<sub>10</sub>";
?>
|
| |
|
|
|
|
|
|
|
для: P@Sol
(21.08.2006 в 09:21)
| | Очень компактное решение, пожалуй самое компактное из представленных
читабел правильно штраф дроб.часть сумма
004 3 6 0 0 9
|
| |
|
|
|
|
|
|
|
для: cheops
(21.08.2006 в 11:47)
| | спасибо | |
|
|
|