Как заменить деление сложением или вычитанием? Помниться был там простенький алгоритм. Помогиме вспомнить
Если правильно тебя понял PHP: eval('echo 14+14;'); echo '<br>'; eval('echo 14-5 ;'); echo '<br>'; eval('echo 14/5 ;'); echo '<br>'; eval('echo 14*5 ;');
http://php.ru/manual/function.gmp-div-q.html PHP: <?php $div1 = gmp_div_q("100", "5"); echo gmp_strval($div1) . "\n"; $div2 = gmp_div_q("1", "3"); echo gmp_strval($div2) . "\n"; $div3 = gmp_div_q("1", "3", GMP_ROUND_PLUSINF); echo gmp_strval($div3) . "\n"; $div4 = gmp_div_q("-1", "4", GMP_ROUND_PLUSINF); echo gmp_strval($div4) . "\n"; $div5 = gmp_div_q("-1", "4", GMP_ROUND_MINUSINF); echo gmp_strval($div5) . "\n"; ?> Выведет: 20 0 1 0 1
PHP: echo mult(100,20); 2000 PHP: <? function mult($a,$b) { for($i=1;$i<=$a;$i++) { $c=$c+$b; $buff=$a-$c; if ($buff<=0) {echo $i; break;} } } mult(100,4); ?> Правда верно только для целочисленного деления
Будущии ядерные физики России собрались. PHP: <?php echo del(100,2); function del($delimoe,$delitel) { while($delimoe != 0) { $delimoe -= $delitel; $chastnoe++; } return $chastnoe; } ?>
Чтобы заменить деление на другие операции надо перевести всё в двоичную систему. Деление в двоичной системе сводится к другим простым операциям.
гы, ув. Эйнштейн, а сделайте на вашем примере echo del(100,3); )))) Неплохой буфероверфлоу такой у вас получился
Code: <?php echo del(100,2); function del($delimoe,$delitel) { while($delimoe >= 0) { $delimoe -= $delitel; $chastnoe++; } return $chastnoe; } ?
Вообщем, переделал, прекрасно делит int на Int без остатка. Это стандартный алгоритм по замене деления - вычитанием. PHP: <?php echo del(100,2); //50 echo del(100,3); //33 function del($delimoe,$delitel) { while($delimoe >= $delitel) { $chastnoe++; $delimoe -= $delitel; } return $chastnoe; } ?> Делимое и частное, должны быть int. Соответственно и результат будет int без остатка. Над алгоритмом с остатком - не задумывался. Pashkela, ув. идите на http://php.ru/manual/function.gmp-div-q.html . Как сами и сказали.