I wrote a simple piece of code - ceil1. Since it failed my test cases after rewriting same code - ceil worked.
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;
}}
I can't put my finger on what is difference between these two? Possibly intermediate calculation/operator precedence causing this haywire.
(a+b-1)/b?