博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Leetcode】Divide Two Integers
阅读量:5364 次
发布时间:2019-06-15

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

Divide two integers without using multiplication, division and mod operator.

1 class Solution { 2 public: 3     int divide(int dividend, int divisor) { 4         long long a = dividend < 0 ? -(long long)dividend : dividend; 5         long long b = divisor < 0 ? -(long long)divisor : divisor; 6         bool sign = (dividend >= 0 && divisor >= 0) ||  7                     (dividend <= 0 && divisor <= 0); 8         long long ans = 0; 9         while (a >= b) {10             long long c = b;11             for (int i = 0; c <= a; c = c << 1, ++i) {12                 a -= c;13                 ans += (1 << i);14             }15         }16         return sign ? ans : -ans;17     }18 };
View Code

不能用乘、除和取模,那么还可以用加、减和移位。

符号单独考虑。主要从减法出发,可以通过移位加倍被除数从而实现加速。有一点要特别注意的是可能发生溢出,需要用long long类型来进行中间的运算。

转载于:https://www.cnblogs.com/dengeven/p/3766368.html

你可能感兴趣的文章
POJ1062 昂贵的聘礼
查看>>
【零基础学习iOS开发】【02-C语言】08-基本运算
查看>>
Java 将指定字符串连接到此字符串的结尾 concat()
查看>>
Hibernate Criterion
查看>>
Python知识
查看>>
我们为什么要搞长沙.NET技术社区(三)
查看>>
杭电acm Cake
查看>>
js函数中this的指向
查看>>
c++ 引用方式传递数组
查看>>
HBase学习之路 (九)HBase phoenix的使用
查看>>
LeetCode() Remove Duplicates from Sorted Array II
查看>>
【svn】idea svn 文件上会出现一个破书
查看>>
cocos2d-x 3.0 场景切换特效汇总(转)
查看>>
The SortedMap Interface
查看>>
SniperOJ-leak-x86-64
查看>>
bzoj 4260: Codechef REBXOR (01 Trie)
查看>>
学好python
查看>>
css-IE中的border-radius和box-shadow
查看>>
利用bootstrap和webform的异步CRUD及分页
查看>>
HDUOJ 1879继续畅通工程(并查集)
查看>>