博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两个整数相除
阅读量:6671 次
发布时间:2019-06-25

本文共 936 字,大约阅读时间需要 3 分钟。

将两个整数相除,要求不使用乘法、除法和 mod 运算符。如果溢出,返回 2147483647 。
class Solution {public:    int divide(int dividend, int divisor) {        // Write your code here        const int OVER_FLOW = 2147483647;                 long long divd = dividend;        long long divr = divisor;                if (divr == 0) {            return OVER_FLOW;        }        int flag = 1;        if (divd < 0 && divr > 0  || divd > 0 && divr < 0) {            flag = -1;        }
divd  = abs(divd);        divr = abs(divr);                long long ret = 0;                while (divr <= divd) {            long long cnt = 1;            long long tmp = divr;            while (tmp <= divd) {                divd -= tmp;                ret += cnt;                cnt <<= 1;                tmp <<= 1;            }        }                ret *= flag;                 if (ret > INT_MAX || ret < INT_MIN) {            return OVER_FLOW;        }        return ret;    }    };

转载地址:http://cxlxo.baihongyu.com/

你可能感兴趣的文章
年末苦逼找工作
查看>>
我的友情链接
查看>>
电脑检测维修规范,注意事项,常见故障排除,维修技巧
查看>>
笔记二
查看>>
hive2.1.0 安装
查看>>
移动终端开发_高端课程
查看>>
我的友情链接
查看>>
提交服务器汉字乱码解决方法
查看>>
Android SDK:构建一个购物中心搜索的应用(二)-Points of Interest
查看>>
关于android使用自己的launcher替换默认launcher的方法
查看>>
ASP.NET 4.5 MVC实战教程 MVC视频教程
查看>>
Excel编辑模块openpyxl的常用功能介绍
查看>>
通过TFTP服务器拷贝路由器的配置文件到本地
查看>>
南方电网广东公司荣获“IT用户最佳实践案例奖”
查看>>
Yesod - 数据库 (9)
查看>>
Java并发 wait()、notify()和notifyAll()
查看>>
生命在于折腾 ---- 写一个编辑器
查看>>
Mysql数据迁移至Redis
查看>>
java cpu监控
查看>>
Lync 小技巧-2-解决每次出现安装进度条的方法
查看>>