【发布时间】:2018-08-16 12:21:05
【问题描述】:
我写了一段简单的代码 - 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;
}}
我无法确定这两者之间有什么区别? 可能是中间计算/运算符优先级导致了这种混乱。
【问题讨论】:
-
为什么不只是
(a+b-1)/b? -
尝试在 ceil1 中添加一些括号
-
是的,是运算符优先级导致了您的问题。添加括号。
标签: java division modulus modular-arithmetic mod