Divide Two Integers
Divide two integers without using multiplication, division and mod operator.
思路:不能使用乘法除法以及取模运算来计算两个数相除。主要做法就是,将因子不断乘2(向左移位即可实现),同时结果从1不断移位加倍,等到除数大于被除数一半的时候,就从被除数中减去,将因子个数累加到结果中,再依次反复循环。跳出循环,不断递减的被除数与除数相等,则结果在加1.
class Solution { public:int divide(int dividend, int divisor) {assert(divisor!=0);int result=0,count=0;bool isNeg=false;if((dividend>0&&divisor<0)||(dividend<0&&divisor>0))isNeg=true;unsigned int tDividend=abs(dividend);unsigned int tDivisor=abs(divisor);unsigned int tmp=0;while(tDividend>tDivisor){count=1;tmp=tDivisor;while(tDividend>(tmp<<=1)){count<<=1;}tDividend-=(tmp>>1);result+=count;}if(tDividend==tDivisor){result++;}return isNeg?(-result):result;} };
转载于:https://www.cnblogs.com/awy-blog/p/3825446.html
Divide Two Integers相关推荐
- leetcode之Divide Two Integers
题目:Divide Two Integers Divide two integers without using multiplication, division and mod operator. ...
- 29. Divide Two Integers
题目: Divide two integers without using multiplication, division and mod operator. If it is overflow, ...
- Leetcode: Divide Two Integers
Divide two integers without using multiplication, division and mod operator. Best method(跟discuss vo ...
- Leetcode c语言-Divide Two Integers
Title: Divide two integers without using multiplication, division and mod operator. If it is overflo ...
- LeetCode 29. Divide Two Integers
29. Divide Two Integers Divide two integers without using multiplication, division and mod operator. ...
- LeetCode Divide Two Integers(不使用乘、除,求模来计算商)
题意:给出被除数,除数,求商(要求不能用乘,除,求模) 思路:用被除数减去除数,直到小于除数为止.在减的过程中能够做些优化.将除数连续左移直到大于被除数,在这个过程中可以计算是左移后的数是除数的多少倍 ...
- [leetcode]Divide Two Integers
直接用除数去一个一个加,直到被除数被超过的话,会超时. 解决办法每次将被除数增加1倍,同时将count也增加一倍,如果超过了被除数,那么用被除数减去当前和再继续本操作. #include <io ...
- LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
当我第一次看到这个题目时候我我心想不就是两数相除嘛,这么简单的题目为什么要放到 Medium 中,事实证明我当时的想法Too young,Too simple,Too naive 以至于被打脸n次,可 ...
- lintcode 中等题:Divide Two Integers 两个数的除法
题目 两个整数相除 将两个整数相除,要求不使用乘法.除法和 mod 运算符. 如果溢出,返回 2147483647 . 样例 给定被除数 = 100 ,除数 = 9,返回 11 解题 15%的通过率 ...
最新文章
- 你想过 Controller 这些方法里的参数是如何工作的吗?
- 生产上oracle扩展表空间,oracle基于裸设备(raw device)扩充表空间
- Slog59_项目上线之域名备案时两家或多家运营商之间的业务交叉经历
- android 简易涂鸦板,canvas实现的简易涂鸦板效果
- system合约源码分析
- python数字替换成中文replace_Python3字符串替换replace(),translate(),re.sub()
- SQL_create_table创建表
- php ip 短时间 重复,记录服务器端ip,记录这个ip第一次启动文件的时间,并且排除重复的ip...
- 360安卓_360手机助手下载
- 解决VS2003查询卡死的问题
- Linux gcc编译程序时,-I(大写 i )、-L (大写 L)、-I(小写 L )的作用与区别
- css函数之重复的径向渐变
- 微信小程序api视频课程-基础-wx.canIUse的使用
- javascript技巧搜集。
- 同一个电脑安装多个jdk版本
- 写技术文章的一点感悟
- java Lambda与stream
- 《给青年的十二封信》1-谈读书—朱光潜
- 恐怖啊,MD5已经被真实情况下破解了
- 迅为嵌入式Linux学习笔记5——进程间通信