Java操作应用——奇数判断
提问人:ylm发布时间:2020-09-29
奇数可以被定义为被2整除余数为1的整数。表达式 num% 2 计算的是 num整除 2 时所产生的余数,因此看起来这个程序应该能够正确运转。遗憾的是,它不能;它在四分之一的时间里返回的都是错误的答案。
为什么是四分之一?因为在所有的 int 数值中,有一半都是负数,而 isOdd 方法对于对所有负奇数的判断都会失败。在任何负整数上调用该方法都回返回 false ,不管该整数是偶数还是奇数。
这是 Java 对取余操作符(%)的定义所产生的后果。该操作符被定义为对于所有的 int 数值 a 和所有的非零 int 数值b,都满足下面的恒等式:
(a / b) * b + (a % b) == a
现在进行修改如下:
使用此代码,不仅是解决了奇数的负的问题,而且这个代码也高度优化。因为,算术和逻辑运算的速度更快,比除法和乘法,结果取得了更快。
继续查找其他问题的答案?
相关视频回答
回复(0)
点击加载更多评论>>