`
crazy01wind
  • 浏览: 4097 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java解惑之谜题一:奇数性

阅读更多

下面的方法意图确定它那唯一的参数是否是一个奇数。这个方法能够正确运转
吗?
public static bOO lean isOdd(int i){
      return i % 2 == 1;
}
奇数可以被定义为被2 整除余数为1 的整数。表达式 i % 2 计算的是 i 整除 2
时所产生的余数,因此看起来这个程序应该能够正确运转。遗憾的是,它不能;
它在四分之一的时间里返回的都是错误的答案。


为什么是四分之一?因为在所有的 int 数值中,有一半都是负数,而 isOdd 方
法对于对所有负奇数的判断都会失败。在任何负整数上调用该方法都回返回
false ,不管该整数是偶数还是奇数。


这是 java 对取余操作符(%)的定义所产生的后果。该操作符被定义为对于所
有的 int 数值 a 和所有的非零 int 数值 b,都满足下面的恒等式:
(a / b) * b + (a % b) == a
换句话说,如果你

 

 

 

http://diyjava.com/

分享到:
评论

相关推荐

    Java解惑(谜题)CHM中英文双版本

    谜题1:奇数性 谜题2:找零时刻 谜题3:长整除 谜题4:初级问题 谜题5:十六进制的趣事 谜题6:多重转型 谜题7:互换内容 谜题8:Dos Equis 谜题9:半斤 谜题10:八两 Java谜题2——字符谜题 谜题11:...

    JAVA解惑(JAVA谜题) 中文版(PDF)

    在《JAVA解惑》一书中,作者通过一系列实例介绍了Java编程语言中的一些不易掌握的知识点。其中一个例子是关于如何正确判断一个整数是否为奇数。 **原始代码分析** ```java public static boolean isOdd(int i) { ...

    Java Puzzlers 中文版(Java解惑)

    Java Puzzlers 中文版(Java解惑) Java 谜题 1——表达式谜题 谜题 1:奇数性 下面的方法意图确定它那唯一的参数是否是一个奇数。这个方法能够正确运转 吗? public static boolean isOdd(int i){ return i % 2 == 1...

    java 解惑.pdf

    ### Java解惑知识点详解 #### 一、表达式谜题 **谜题1:奇数性** - **描述**:程序看似应该返回一个布尔值,表明一个数字是否为奇数,但结果却出乎意料。 - **解惑**:在进行模运算时,需要注意负数的情况。当输入...

    java解惑 书籍类 谜题

    ### Java解惑 书籍类 谜题 #### Java谜题1——表达式谜题 **谜题1:奇数性** 本节讨论了一个看似简单的Java方法,旨在判断一个整数是否为奇数: ```java public static boolean isOdd(int i) { return i % 2 ==...

    java解惑95个谜题.doc

    谜题1:奇数性 在这个问题中,我们有一个方法`isOdd(int i)`,它通过检查`i % 2`是否等于1来判断一个整数是否为奇数。然而,这个方法在处理负数时会出现问题,因为Java中的取余运算符 `%` 对于负数的处理方式可能...

    iava解惑,深入剖析java

    《深入剖析Java》一书旨在帮助Java开发者解决在编程过程中遇到的困惑,通过一系列精心设计的谜题,深入探讨Java语言的核心概念、语法特性和易错点。以下是对部分谜题的详细解析,以加深对Java的理解。 谜题1:奇数...

    Java谜题解惑 中文版CHM格式

    谜题1:奇数性 下面的方法意图确定它那唯一的参数是否是一个奇数。这个方法能够正确运转吗? public static boolean isOdd(int i){ return i % 2 == 1; } 奇数可以被定义为被2整除余数为1的整数。表达式 i % 2 ...

    java解惑 PDF版

    文档《java解惑 PDF版》中列举了95个这样的谜题,每个谜题都旨在帮助开发者理解并纠正一些常见的错误理解。以下是根据提供的部分内容解析的几个相关知识点。 ### 表达式谜题与取余操作符(%)的行为 在Java中,...

    Java解惑 PPT1

    【Java解惑PPT1】深入探讨Java编程中的常见迷惑 在Java编程中,了解语言的细微之处至关重要,因为这可能会导致意想不到的行为。本PPT主要涵盖了五个有趣的Java谜题,帮助开发者理解Java的一些核心概念。 **谜题1:...

    JAVA面试谜题解惑.pdf

    ### JAVA面试谜题解惑知识点解析 #### 表达式谜题:奇数性检查方法的缺陷 **题目背景:** 题目中提到的谜题旨在检验面试者对Java中的基本数学运算符及其行为的理解程度。具体来说,是针对取余运算符`%`在处理整数...

    java解惑

    在《Java解惑》一书中,作者通过一系列的谜题探讨了Java语言中容易忽视但又至关重要的细节。第一个谜题是关于奇数性检测的,表面上看似简单的代码实际上隐藏着复杂的行为。 ```java public static boolean isOdd...

    JAVA解惑 中文pdf版

    **谜题背景**: 在《JAVA解惑》这本书中提到了第一个谜题:如何判断一个整数是否为奇数。该谜题提供了一个看似合理的解决方案,但实际运行时会出现问题。 **原方法实现**: ```java public static boolean isOdd(int ...

Global site tag (gtag.js) - Google Analytics