浏览 2248 次
锁定老帖子 主题:(一)判断奇数
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-27
public Boolean isOdd(int i){ return (i % 2 == 1); } 这个方法能正确执行么?对,它能正确执行,不过有25%的机会是错误的。因为i有可能是非正整数。例如:(a / b) * b + (a % b) == a这个等式是正确的么?答案是:在java中它不是永远正确的,因为在java运算符”%”的结果是正数还是负数是以运算符左边的数位依据的(数学中对求余是这样解释的:求余的前提条件是是自然数。时间长了,都忘记了,只好google一下-_-),例如a。所以对上面的方法做出修改: public Boolean isOdd(int i){ return (i % 2 != 0); } 或者 public Boolean isOdd(int i){ return (i & 1 != 0); } 上面第二种方法的效率是要高于第一种的。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-27
public Boolean isOdd(int i){
return (i & 1 != 0); } 这个方法你试过吗? 没试过不要贴上来喔 |
|
返回顶楼 | |
发表时间:2008-03-27
试过,可以实现
|
|
返回顶楼 | |