Catharsis
4.03.2014 - 06:01
Доброго времени суток. Стоит задача написать скрипт для перемножения двух чисел не используя "*". Надо это сделать с помощью рекурсии. Вроде бы должно работать, но увы. Не прошу написать за меня этот скрипт, прошу указать на ошибку. Буду очень признательный.
Заранее спасибо.
Игорь_Vasinsky
4.03.2014 - 06:48
сюда код запости
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Catharsis
4.03.2014 - 06:56
<?php
$mul1 = 0; $mul2 = 0; $pr = 0;
echo "Введите первый множитель: ";
$mult1 = fopen ("php://stdin","r");
$m1 = fgets($mult1);
echo "Введите второй множитель: ";
$mult2 = fopen ("php://stdin","r");
$m2 = fgets($mult2);
if ($m1==0||$m2==0)
{
$pr = 0;
die ("$m1 умножить на $m2 будет: $pr\n");
}
if ($m1==1)
{
$pr = $m2;
die ("$m1 умножить на $m2 будет: $pr\n");
}
elseif ($m2==1)
{
$pr = $m1;
die ("$m1 умножить на $m2 будет: $pr\n");
}
echo "$m1 умножить на $m2 будет: ";
if ($m1<0 && $m2>0)
{
$mtemp1=abs($m1);
if ($m2>$mtemp1)
{
$temp = $mtemp1;
$mul1 = 0-$m2;
$mul2 = $temp;
}
else
{
$mul1 = 0-$mtemp1;
$mul2 = $m2;
}
}
elseif ($m2<0 && $m1>0)
{
$mtemp2=abs($m2);
if ($mtemp2>$m1)
{
$temp = $m1;
$mul1 = 0-$mtemp2;
$mul2 = $temp;
}
else
{
$mul1 = 0-$m1;
$mul2 = $mtemp2;
}
}
if ($m1<0 && $m2<0)
{
$mul1=abs($m1);
$mul2=abs($m2);
if ($mul1<$mul2)
{
$temp = $mul1;
$mul1 = $mul2;
$mul2 = $temp;
}
}
if ($m1<=$m2 && $m1>0)
{
$temp = $m1;
$mul1 = $m2;
$mul2 = $temp;
}
elseif ($m2 < $m1 && $m1 > 0)
{
$mul1 = $m1;
$mul2 = $m2;
}
function product($m2r,$m1r,$prod)
{
if ($m2r > 0)
{
$prod = $prod + $m1r;
$m2r--;
product($m2r,$m1r,$prod);
}
else
{
die ("$prod\n");
}
}
$rez = product($mul2,$mul1,$pr);
echo "$rez";
?>
спасибо за то что откликнулись, но смог сам разобраться
$m2r--; заменил на
$m2r=$m2r-1;