我写了一段简单的代码——ceil1
。由于重写相同代码后我的测试用例失败了 - ceil
起作用了。
public class Test {
public static void main(String args[]){
System.out.println(ceil(3, 2)); //getting 2
System.out.println(ceil1(3, 2)); //getting 1
}
public static int ceil(int dividend, int divisor){
int a = dividend/divisor;
int b = dividend%divisor == 0 ? 0:1;
return a+b;
}
public static int ceil1(int dividend, int divisor){
return dividend/divisor + dividend%divisor == 0 ? 0:1;
}}
我不知道这两者之间有什么区别? 可能是中间计算/运算符优先级导致了这种困惑。
最佳答案
在
return dividend/divisor + dividend%divisor == 0 ? 0:1;
添加
dividend/divisor + dividend%divisor
执行,然后将结果与 0 进行比较。
你想要:
return dividend/divisor + (dividend%divisor == 0 ? 0:1);
或
return dividend/divisor + (dividend%divisor == 0) ? 0:1;
为了只有 dividend%divisor
将与 0
进行比较。
关于Java - 自定义整数除法函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49168168/