1. 首页
  2. 软件开发
  3. day-59 两数相除

day-59 两数相除

  • 发布于 2024-09-26
  • 1 次阅读


思路
首先判断商的正负,然后便可将两个数都转换为整数,方便商的计算,商的计算用被除数不断减去除数即可

解题过程
注意:整型的负值比正值多一个数,这种特殊情况需要需要单独讨论,同时当除数为1时,很可能会超时也需要单独讨论

Code

class Solution {

    public int divide(int dividend, int divisor) {

        boolean flag=true;
        if((dividend<0&&divisor>0)||(dividend>0&&divisor<0)) flag=false;
        int ans=0;
        long tdividend=Math.abs((long)dividend);
        long tdivisor=Math.abs((long)divisor);
        if(tdividend==-1*(long)Integer.MIN_VALUE&&tdivisor==1&&flag) return Integer.MAX_VALUE;
        if(tdividend==-1*(long)Integer.MIN_VALUE&&tdivisor==1&&!flag) return Integer.MIN_VALUE;
        if(tdividend==(long)Integer.MAX_VALUE&&tdivisor==1&&flag) return Integer.MAX_VALUE;
        if(tdividend==(long)Integer.MAX_VALUE&&tdivisor==1&&!flag) return -Integer.MAX_VALUE;
        while(tdividend>=tdivisor){

            ans++;
            tdividend=tdividend-tdivisor;
        }
        if(flag) return ans;
        else return -1*ans;
    }
}

作者:菜卷
链接:https://leetcode.cn/problems/divide-two-integers/solutions/2929015/liang-shu-xiang-chu-by-ashi-jian-chong-d-81tj/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文链接: https://blog.csdn.net/qq_53568730/article/details/142497422