
12.02.2009, 16:02
|
|
Участник форума
Регистрация: 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 < 1 || $aLen > 100) return -1;
if ($bLen < 1 || $bLen > 100) return -2;
if ($b > $a) return -3;
if ($b <= 0) return -4;
if ($a <= 0) return -5;
$rest = substr($a, 0, $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>';
}
|
|
|