2010-10-13 5 views
1

Как написать функцию для реализации алгоритма целочисленного деления без с использованием оператора деления. Значения плавающей запятой и остатки могут быть отброшены . Условия ошибки могут быть проигнорированы.как написать функцию для реализации алгоритма целочисленного деления без использования оператора деления в php

Например:

f(10, 3) is 3 

f(10, 5) is 2 

f(55, 5) is 11 
+8

Не обижайся, но похоже, довольно много вопросов в вашей недавней истории, кажется, как тонко завуалированные домашние задания, без предварительной попытки продемонстрировать решение. Если это так, мы здесь, чтобы помочь, но мы здесь не для того, чтобы делать домашнее задание целиком для вас. Это потенциально обманывает нас, ваших одноклассников и, самое главное, самого себя. Посмотрите на http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions - самое главное, покажите начальные усилия на своем конце, а затем придите сюда с конкретным вопрос о том, какую часть вы застряли. –

ответ

4

моей реализации, но он не принимает во внимание признаки операндами

function f($value, $div) 
{ 
     $result = 0; 
     while ($value >= $div) { 
       $result++; 
       $value -= $div; 
     } 

     return $result; 
} 

var_dump(f(10,3)); 
0

Я думаю, что вы должны смотреть на битовые операторы $ х> > $ y сдвигает один бит вправо (умножается на два), противоположный - $ x < < $ y, который сдвигает один бит влево, разделяя его на два.

5
function div($a,$b) 
{ 
    $a -= $a % $b; 
    for($i = 0; $a != 0; $i++) 
    $a -= $b; 
    return $i; 
} 

это, конечно, работает только для положительных чисел

3

PHP уже имеет функцию, которая с bcdiv

echo bcdiv(10, 3, 0); // 3