思路
首先判断商的正负,然后便可将两个数都转换为整数,方便商的计算,商的计算用被除数不断减去除数即可
解题过程
注意:整型的负值比正值多一个数,这种特殊情况需要需要单独讨论,同时当除数为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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。