Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ответ 004 на задачу N 20
 
 автор: P@Sol   (21.08.2006 в 09:21)   письмо автору
 
 

В пятницу забыл с работы домой притащить свой вариант, в итоге только что до него добрался...может получу сколько-нибудь балов:)


<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%== 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>";


?>

   
 
 автор: cheops   (21.08.2006 в 11:47)   письмо автору
 
   для: P@Sol   (21.08.2006 в 09:21)
 

Очень компактное решение, пожалуй самое компактное из представленных
     читабел правильно штраф дроб.часть сумма 
004     3        6       0       0        9

   
 
 автор: P@Sol   (21.08.2006 в 12:21)   письмо автору
 
   для: cheops   (21.08.2006 в 11:47)
 

спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования