Java - 自定义整数除法函数

标签 java division modulus modular-arithmetic mod

我写了一段简单的代码——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/

相关文章:

java - 如何使用 Java 8 中的 lambda 和流检查整数类型的所有元素是否在给定范围内?

java - 使用递归插入二叉树

c - 非常数除数的矢量化整数除法最快方法

jquery - 使用 javascript 模数通过 for 循环遍历文本 slider

python - 关于模运算的行为?

Java泛型方法类型转换

Matlab 除以 0 : Inf or -Inf

haskell - div 和 quot 之间的确切区别

Java - 是否有欧几里德或地板模的方法

java - 替换扫描仪字符串中的字符