[LeetCode]29. Divide Two Integers

来源:互联网 发布:网络综合布线报价单 编辑:程序博客网 时间:2024/05/17 18:40

https://leetcode.com/problems/divide-two-integers/?tab=Description

两个Integer做除法





1、判断符号;2、不断翻倍累加,记录翻的倍数;3、用long!!!!

public class Solution {    public int divide(int dividend, int divisor) {        if (divisor == 0 || (dividend == Integer.MIN_VALUE && divisor == -1)) {            return Integer.MAX_VALUE;        }        int sign = (dividend > 0) ^ (divisor > 0) ? 1 : 0;        int res = 0;        long did = Math.abs((long)dividend);        long dis = Math.abs((long)divisor);        while (did >= dis) {            long temp = dis;            long multi = 1;            while (did >= (temp << 1)) {                temp <<= 1;                multi <<= 1;            }            res += multi;            did -= temp;        }        return sign == 0 ? res : -res;    }}


0 0
原创粉丝点击