题目
给定两个整数 a
和 b
,求它们的除法的商 a/b
,要求不得使用乘号 '*'
、除号 '/'
以及求余符号 '%'
。
注意:
- 整数除法的结果应当截去(
truncate
)其小数部分,例如:truncate(8.345) = 8以及
truncate(-2.7335) = -2 - 假设我们的环境只能存储 32 位有符号整数,其数值范围是
[−2^31, 2^31−1]
。本题中,如果除法结果溢出,则返回2^31 − 1
示例1:
1 | 输入:a = 15, b = 2 |
示例2:
1 | 输入:a = 7, b = -3 |
示例3:
1 | 输入:a = 0, b = 1 |
示例4:
1 | 输入:a = 1, b = 1 |
提示:
-2^31 <= a, b <= 2^31 - 1
b != 0
解法
解法一:
JAVA
1 | public int divide(int a, int b) { |