美文网首页
两个整数相除

两个整数相除

作者: lyoungzzz | 来源:发表于2017-07-03 22:40 被阅读59次

描述

将两个整数相除,要求不使用乘法、除法和 mod 运算符。
如果溢出,返回 2147483647 。

样例

给定被除数 = 100 ,除数 = 9,返回 11。

代码实现

public class Solution {
    /**
     * @param dividend the dividend
     * @param divisor the divisor
     * @return the result
     */
    public int divide(int dividend, int divisor) {
        if (divisor == 0) {
            if (dividend > 0) {
                return Integer.MAX_VALUE;
            } else {
                return Integer.MIN_VALUE;
            }
        }
        if (dividend == 0) {
            return 0;
        }
        if (dividend == Integer.MIN_VALUE && divisor == -1) {
            return Integer.MAX_VALUE;
        }
        long a = Math.abs((long) dividend);
        long b = Math.abs((long) divisor);
        int res = 0;
        while (a >= b) {
            int shift = 0;
            while (a >= (b << shift)) {
                shift++;
            }
            a -= (b << (shift-1));
            res += 1<<(shift-1);
        }
        if ((dividend > 0 && divisor < 0) ||
            (dividend < 0 && divisor > 0)) {
                return -res;
            } else {
                return res;
            }
    }
}

相关文章

  • 【leetcode】 两数相除

    【leetcode】 两数相除 题目: 给定两个整数,被除数 dividend 和除数 divisor。将两数相除...

  • 两个整数相除

    描述 将两个整数相除,要求不使用乘法、除法和 mod 运算符。如果溢出,返回 2147483647 。 样例 给定...

  • LeetCode-29-两数相除

    LeetCode-29-两数相除 题目 给定两个整数,被除数 dividend 和除数 divisor。将两数相除...

  • 29. 两数相除

    29. 两数相除 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法...

  • 29. 两数相除

    29.两数相除 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和...

  • 辗转相除法——字符串处理

    辗转相除法 GCD:辗转相除法,求两个正整数的最大公约数。 gcd(m,n) = gcd(n,m mod n) [...

  • Java程序基础--整数运算

    整数运算即使是除法运算,也是精确的,两个整数相除只能得到结果的整数部分。 求余运算用% 注意:整数的除法对于除数为...

  • LeetCode-29: Divide Two Integers

    (两个整数相除,不用乘除取余算术符) Divide two integers without using mult...

  • 每天进步一点点【2019.8.23】

    一、两数相除【leetcode 29】 题目描述:给定两个整数,被除数 dividend 和除数 divisor。...

  • 2019-06-02 Python-随手记

    1. python2 两个int整数相除,结果仍旧是整数,例如 3/40 因为自己clone的工程中需要用两个in...

网友评论

      本文标题:两个整数相除

      本文链接:https://www.haomeiwen.com/subject/gpazcxtx.html