<?phpclass Solution { public function divide1($dividend, $divisor) { $sign = 1; if (($dividend < 0 && $divisor > 0) || ($dividend > 0 && $divisor < 0)) { $sign = -1; } $newDividend = abs($dividend); $newDivisor = abs($divisor); if ($newDividend < $newDivisor) return 0; $sum = $newDivisor; $multi = 1; while($sum + $sum < $newDividend) { $sum += $sum; $multi += $multi; } $data = $multi + $this->divide1($newDividend - $sum, $newDivisor); $num = $sign < 1 ? 0 - $data : $data; if ($num > pow(2, 31) - 1) return pow(2, 31) - 1; if ($num > pow(2, 31)) return pow(-2, 31); return $num; } public function divide2($dd, $dr) { $sign = 1; if (($dd < 0 && $dr > 0) || ($dd > 0 && $dr < 0)) { $sign = -1; } $dd = abs($dd); $dr = abs($dr); $multi = 0; while ($dd - $dr > 0) { $dd = $dd - $dr; $multi++; } return [$multi, $dd]; }}$cls = new Solution();$r = $cls->divide1(10, 3);print_r($r);