29. 两数相除

题目:
给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。
返回被除数 dividend 除以除数 divisor 得到的商。
整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2

示例 1:
输入: dividend = 10, divisor = 3
输出: 3
解释: 10/3 = truncate(3.33333..) = truncate(3) = 3

代码: 使用大整数的divide方法,唯一需要注意的是超过Integer.MAX_VALUE的值变为Integer.MAX_VALUE
import java.math.BigInteger;
class Solution {
public int divide(int dividend, int divisor) {
BigInteger i=new BigInteger(String.valueOf(dividend));
BigInteger j=new BigInteger(String.valueOf(divisor));
if(i.divide(j).equals(new BigInteger("2147483648"))){return 2147483647;}
return i.divide(j).intValue();
}
}

posted @ 2020-12-09 18:21  堤苏白  阅读(85)  评论(0)    收藏  举报