[LeetCode]29. Divide Two Integers

    xiaoxiao2021-03-25  118

    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; } }

    转载请注明原文地址: https://ju.6miu.com/read-9570.html

    最新回复(0)