zoukankan      html  css  js  c++  java
  • 谜题1:奇数性

    isOdd方法用来判断输入参数i是否为奇数,结果会怎样呢?

    public static boolean isOdd(int i){
      return i % 2 == 1;
    }

    考察的是%(取余)运算符的使用,该操作符被定义为对于所
    有的 int 数值 a 和所有的非零 int 数值 b,都满足下面的恒等式:
    (a / b) * b + (a % b) == a ;

    当isOdd方法传入的参数是负奇数时,返回依然是FALSE,但负奇数也是奇数,因此上述代码存在缺陷,因此在使用时,通常改为如下更符合该操作符的定义:

    public static boolean isOdd(int i){
      return i % 2 != 0;
    }

    另外取余和取模还有很多不同之处

    取余:rem(5,2) = 1

        rem(5,-2) = 1

           rem(-5,2) = -1

           rem(-5,-2) = -1

    取模:mod(5,2) = 1

        mod(5,-2) = -1

           mod(-5,2) = 1

           mod(-5,-2) = -1

    综上来看二者却有不同,取余结果的正负与被除数相同,取模结果的正负与除数相同

    还有当是浮点型时,先四舍五入再取余

    例如:17%5.6 = 5;

    还有一种情况例如:10%13 = 10;

    -----------------------------------------------------------------

    仔细研究发现一个小小运算符都如此的奇妙。。

  • 相关阅读:
    redis 学习笔记
    导数据方法
    数据库常用操作
    zepto.js
    shopnc
    vue.js
    laravel
    mysql进阶学习
    Python基础------生成器表达式形式、面向过程编程、内置函数部分
    Python基础----生成器、三元表达式、列表生成式、生成器表达式
  • 原文地址:https://www.cnblogs.com/applemy/p/6366109.html
Copyright © 2011-2022 走看看