活跃农民
- 积分
- 525
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2016-11-8
- 最后登录
- 1970-1-1
|
蠡口 而舅 我自己的解法
//corner cases
if(dividend==0) return 0;
if(divisor==1) return dividend;
if(divisor==-1) {
if(dividend==Integer.MIN_VALUE){
return Integer.MAX_VALUE;
}else{
return 0-dividend;
}
}
boolean isNeg = (dividend<0 && divisor>0) || (dividend>0 && divisor<0)?true:false;
long top = Math.abs((long)dividend);
long bot = Math.abs((long)divisor);
String str = String.valueOf(top);
char[] topc = str.toCharArray();
StringBuilder sb = new StringBuilder();
int digit=0;
long num=0;
while(digit<topc.length){
num=num*10+topc[digit]-'0';
sb.append(num/bot);
num%=bot;
digit++;
}
//if(sb.charAt(0)=='0') sb.deleteCharAt(0);
while(sb.length()!=0 &&sb.charAt(0)=='0') sb.deleteCharAt(0);
if(sb.length()==0) return 0;
if(isNeg){
return 0-Integer.parseInt(sb.toString());
}else{
return Integer.parseInt(sb.toString());
} |
|