g***j 发帖数: 1275 | 1 Divide two integers without using multiplication, division and mod operator.
这个题目怎么做呀,我用的是数学公式exp(logx - logy)
但是,large set就这一个通不过,难道这个除出来不是-1么?他说expected是0,这是
为什么?
2147483647, -2147483648 -1 0
| f**********e 发帖数: 288 | 2 int division(int a, int b){
if(b == 0) {
System.out.println("cannot divied by a zero");
return 0;
}
if((a < 0) && (b > 0)) {
return -(division(-a, b));
} else {
if((a > 0) && (b < 0))
return -(division(a, -b));
else {
if((a < 0) && (b < 0))
return division(-a, -b);
}
}
int quotient = 0;
while(a >= b){
a = a - b;
quotient++;
}
return quotient;
} | f**********e 发帖数: 288 | | j********x 发帖数: 2330 | 4 lz给的这个在你的代码里会溢出
【在 f**********e 的大作中提到】 : int division(int a, int b){ : if(b == 0) { : System.out.println("cannot divied by a zero"); : return 0; : } : : if((a < 0) && (b > 0)) { : return -(division(-a, b)); : } else { : if((a > 0) && (b < 0))
| f**********e 发帖数: 288 | 5 I have run it, but it did not overflow.
【在 j********x 的大作中提到】 : lz给的这个在你的代码里会溢出
|
|