如何在不使用除法运算符的情况下编写实现整数除法算法的函数php

问题描述:

如何使用除法运算符编写实现整数除法算法的函数,而不使用 。可以丢弃浮点值和剩余部分 。错误条件可能会被忽略。如何在不使用除法运算符的情况下编写实现整数除法算法的函数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 - 最重要的是,在你的最后显示一些初步的努力,然后来一个特定的关于你被困住的特定作品的问题。 – 2010-10-13 05:16:55

我的实现,但它没有考虑到操作数的帐户迹象

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

     return $result; 
} 

var_dump(f(10,3)); 

我的猜测是,你将不得不看位运算符$ X> > $ y右移一位(乘以两),相反的是$ x < < $ y,它向左移一位,然后除以二。

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

这当然只适用于正数

PHP已经具备了与bcdiv

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