题目

类型:Math
难度:中等
image.png

解题思路

代码

  1. class Solution {
  2. public int divide(int dividend, int divisor) {
  3. if(dividend == Integer.MIN_VALUE && divisor == -1){
  4. return Integer.MAX_VALUE;
  5. }
  6. int flag = 0, res = 0;;
  7. if(dividend > 0){
  8. flag ++;
  9. dividend = 0 - dividend;
  10. }
  11. if(divisor > 0){
  12. flag ++;
  13. divisor = 0 - divisor;
  14. }
  15. if(divisor < -1){
  16. while(dividend <= divisor){
  17. int tmp = 1;
  18. int div = divisor;
  19. while(div >= dividend - div){
  20. div += div;
  21. tmp += tmp;
  22. }
  23. res += tmp;
  24. dividend -= div;
  25. }
  26. }else{
  27. res = 0 - dividend;
  28. }
  29. return flag == 1 ? 0 - res : res;
  30. }
  31. }