29.两个整数相除
来源:互联网 发布:python中文乱码解决sys 编辑:程序博客网 时间:2024/05/16 07:19
Divide Two Integers
问题描述:
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
知识补充:
移位运算
a<<1;//移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部为0;若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)//类似于乘除法,左移一位相当于乘以2.两位乘以4
参考答案:
class Solution {public: int divide(int& n_, int& d_) { long n = abs((long)n_), d = abs((long)d_), res = 0; while(n>=d){ long a = d, count = 1; while((a<<1)<n){a<<=1; count<<=1;} res += count; n -= a; } if(n_>0 ^ d_>0) return -res; return min((long)INT_MAX, max((long)INT_MIN, res)); }};
性能:
阅读全文
0 0
- 29.两个整数相除
- 两个整数相除
- 两个整数相除
- 两个整数相除
- 两个整数相除
- 两个整数相除
- LintCode-两个整数相除
- 题目:两个整数相除
- LintCode_两个整数相除
- Leetcode020--两个整数相除
- LintCode:两个整数相除
- 两个整数相除-LintCode
- LintCode 两个整数相除
- 两个整数相除得float
- 求两个整数相除的结果
- Divide Two Integers 两个整数相除
- Java实现两个整数相除
- lintcode(414)两个整数相除
- 【面试常见问题】【C++】指针和引用的区别,有哪些不同点,细细道1
- namenode工作模式
- hdu 5706 GirlCat
- TCP/IP 详解卷一学习笔记(一):TCP/IP 协议基本概念
- HDU 4614Vases and Flowers(线段树)
- 29.两个整数相除
- GIT 源码阅读之 update-cache
- mysql 命令安装zip版本总结
- 网页加载速度提升——大总结(未完待续)
- Androidstudio查不出具体哪行报错解决办法
- http://blog.csdn.net/erfucun/article/details/52269610
- Python3爬虫--阶段性成果
- Spring3.1.0实现原理分析(十九).MVC异常处理
- Android异常捕获篇(下)---retrofit实现文件的上传