Показать сообщение отдельно

Деление столбиком
  #619  
Старый 12.02.2009, 16:02
-=Static=-
Участник форума
Регистрация: 12.11.2006
Сообщений: 213
Провел на форуме:
347573

Репутация: 185
По умолчанию Деление столбиком

PHP код:
<?php
/**
* Ф-ция выполняющая деления одного числа на другое столбиком (как в младших классах школы)
* Диапазон допустимых значений: Только положительные числа длинной от 1 до 100 символов.

* $a - Делимое
* $b - Делитель

* Возвращаемый результат: array(int Результат, int Остаток)

* Коды ошибок:
* -1 = Делимое не попадает в допустимый диапазон
* -2 = Делитель не попадает в допустимый диапазон
* -3 = Делитель больше делимого
* -4 = Делитель <= 0
* -5 = Делимое  <= 0
*/

function columnDivision($a$b)
{
    
$a strval($a);
    
$b strval($b);
    
$aLen strlen($a);
    
$bLen strlen($b);
    
    if (
$aLen || $aLen 100) return -1;
    if (
$bLen || $bLen 100) return -2;
    if (
$b $a)              return -3;
    if (
$b <= 0)              return -4;
    if (
$a <= 0)              return -5;
    
    
    
    
$rest substr($a0$bLen);
    
$result "";
    
    for(
$i $bLen$i <= $aLen$i++) {
        
$j 0;
        while(
$rest >= $b) {
           
$j++;
           
$rest -= $b
        }
        
$result .= $j;
        if (isset(
$a[$i])) $rest .= $a[$i];
    }
    
    return array(
intval($result), intval($rest));
}

if (
file_exists("input.txt")) {
    
$bufer file_get_contents("input.txt");
    
$arInput explode(" "$bufer);
    
$arResult columnDivision(intval($arInput[0]), intval($arInput[1]));
    
file_put_contents("output.txt"implode(" "$arResult));
    echo 
'Division is complite. Result write in file <b>output.txt</b>';
} else {
    echo 
'No input file. <b>:(</b>';
}
 
Ответить с цитированием