LeetCode Divide Two Integers
2016-03-20 14:52
274 查看
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
举个例子比较容易理解,74 / 5, 这里 5*2=10 < 10*2=20 < 20*2=40 < 40*2=80,可以得到 5*8<74;然后剩下34,使用这一方法继续计算5*4=20 < 34,剩余14, 5*2<14,余下4舍去。故结果为8+4+2=14。
class Solution { public: int divide(int dividend, int divisor) { int ret = 0; int count = 0; long long fDivisor = divisor; long long fDividend = dividend; long long a = abs(fDividend); long long b = abs(fDivisor); long long sum = 0; int final = 0; bool flag = false; if(!fDivisor || (fDividend==INT_MIN&&fDivisor==(-1))) return INT_MAX; if(fDivisor ==0 || fDividend ==0) return 0; if(a < b) { return 0; } while(a >= b) { int count = 1; sum = b; while(sum + sum < a) { sum += sum; count += count; } a -= sum; final += count; } if(fDividend * fDivisor < 0) { final = (-1)*final; } return final; } };
相关文章推荐
- linux 信号阻塞和信号未决
- 2016年3月9日~10日,杨学明老师为武汉某著名通信企业提供内训课程服务!
- boost智能指针
- Linux下软件安装与卸载命令
- JAVA多线程之(Interrupt)
- kail linux安装软件提示“无法定位软件包”解决方法
- 工具-VS插件Resharper快捷键
- 基于用户的协同过滤推荐算法原理和实现
- hdu5645 DZY Loves Balls && hdu5646 DZY Loves Partition
- c语言:约瑟夫环的实现
- SensorMananger
- README.md --- Markdown
- 工具-VS2015前端开发工具简介
- Android之数据库操作
- 自定义view(1)
- 哈希表遍历
- 100.选菜(动态规划)01背包
- idea整合struts和spring和hibernate时候的导jar错误:Unable to load configuration. - action -
- 工具-常用VS插件
- OpenGL------三维变换