错误一例: int min,max; //...一些过程 int mid = (int) Math.ceil((min+max)/2); 这个代码不能达到向上取整的目的 因为min,max 都是int类型,相加除以2之后,已经向0取整,已经是整数,所以Math.ceil()方法无济于事。 处理办法1 2 int mid = (min+max+1)/2; //或者 int min = (min+max+1)>>1; 1 ↩︎ 2 ↩︎