bool
Новичок
Сумма больших чисел
Есть функция, которая получает 2 строки чисел. Делает из них два масива чисел и суммирует поразрадно. Если сумма двух разрядов больше 10, то по идее в текущий элемент масива присваиваит челую часть от деления на 10, проверяет, есть ли следущий елемент, если нет, присваивет 0, и увеличивает на 1.
Для чисел, например, 11 и 8 работает, для чисел 11 и 12 тоже.
Но для 11 и 9 выводит 10?
Помогите, два раза переписывал и ничего.
Есть функция, которая получает 2 строки чисел. Делает из них два масива чисел и суммирует поразрадно. Если сумма двух разрядов больше 10, то по идее в текущий элемент масива присваиваит челую часть от деления на 10, проверяет, есть ли следущий елемент, если нет, присваивет 0, и увеличивает на 1.
Для чисел, например, 11 и 8 работает, для чисел 11 и 12 тоже.
Но для 11 и 9 выводит 10?
Помогите, два раза переписывал и ничего.
PHP:
function summ($a = '', $b = '')
{
for ($i = 0; $i < strlen($a); $i++)
{
$c[$i] = $a{$i};
}
for ($i = 0; $i < strlen($b); $i++)
{
$d[$i] = $b{$i};
}
$c = array_reverse($c);
$d = array_reverse($d);
$num_c = sizeof($c);
$num_d = sizeof($d);
$min = min($num_c, $num_d);
$max = max($num_c, $num_d);
$out = array();
for ($i = 0; $i < $max; $i++)
{
if (empty($d[$i]))
{
$d[$i] = 0;
}
if (empty($c[$i]))
{
$c[$i] = 0;
}
$out[$i] = intval($d[$i]) + intval($c[$i]);
if ($out[$i] >=10)
{
$out[$i] = $out[$i]-10;
$out[$i+1] = 0;
$out[$i+1] = $out[$i+1] + 1;
}
}
return array_reverse($out);
}