关闭

Middle-题目127:29. Divide Two Integers

57人阅读 评论(0) 收藏 举报
分类:

题目原文:
Divide two integers without using multiplication, division and mod operator.

If it is overflow, return MAX_INT.
题目大意:
不用乘法、除法、取模实现两个数的除法,如果溢出则返回MAX_INT(232-1)
题目分析:
直接用a/b水过去的,正确的解法好像是模拟二进制的竖式除法,用位运算和加减解决。
源码:(language:java)

public class Solution {
    public int divide(int dividend, int divisor) {
        return (dividend==-2147483648 && divisor == -1)?Integer.MAX_VALUE:dividend/divisor;
    }
}

成绩:
2ms,beats 75.64%,众数3ms,66.70%
Cmershen的碎碎念:
原则上除法是CPU的底层上用硬件实现的,但可以用高级语言代码去模拟。据论坛中所说,实现除法、乘法、乘方等数值运算的问题在面试中还是比较常见的,有时间整理一下。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:57107次
    • 积分:3214
    • 等级:
    • 排名:第10674名
    • 原创:270篇
    • 转载:53篇
    • 译文:0篇
    • 评论:7条
    文章分类
    最新评论