LeetCode 29. Divide Two Integers

int divide(int dividend, int divisor)
{
	int result;
	if (dividend == (pow(-2, 31))&& divisor==-1)
		return pow(2, 31) - 1;
	result = dividend / divisor;

	return result;
}
class Solution {
    public int divide(int dividend, int divisor) {
         int ans=0;
         int FH=1;
         if(dividend<0)
         {
             if(dividend==Integer.MIN_VALUE)
             {
                 if(divisor==-1)
                     return Integer.MAX_VALUE;
                 if(divisor==1)
                     return Integer.MIN_VALUE;
                 if(divisor==Integer.MIN_VALUE)
                     return 1;
                 FH=-FH;
                 if(divisor<0)
                 {
                     dividend=Integer.MAX_VALUE+divisor+1;
                     ans++;
                 }
                 else {
                     dividend=Integer.MAX_VALUE-divisor+1;
                     ans++;
                 }
             }
             else {
                 FH=-FH;
                 dividend=-dividend;
             }

         }
         if(divisor<0)
         {
             FH=-FH;
             if(divisor==Integer.MIN_VALUE)
             {
                 return 0;
             }
             divisor=-divisor;
         }
         while (dividend>=divisor)
         {
             dividend=dividend-divisor;
             ans++;
         }
         if(FH==-1)
         return -ans;
         else return ans;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值