如何快速的判断一个数是否是偶数-Java实现

1. 如何快速的判断一个数是否是偶数

分析:

  1. 我们的第一想法一定是这个数取余2 为0 则是偶数,为 1 则是奇数

    代码如下:

    import java.util.Scanner;
    
    /**
     * Class day01 ...
     *
     * @author LiJun
     * Created on 2018/12/17
     */
    
    //如何快速的判断一个数是否是偶数
    
        
    public class day01 {
        
        public static void main(String[] args) {
            int n;
            Scanner scanner = new Scanner(System.in);
            while(true){
                n = scanner.nextInt();
                if( n % 2 == 0){
                    System.out.println(n + "是偶数");
                }else{
                    System.out.println(n + "是奇数");
                }
            }
        }
    }
    
  2. (用位运算实现)诚然,上面的代码确实可以做到,但是这个并不是我们想要的结果,因为它太慢了**

    1. 我们简单的分析一下,从二进制的角度出发,一个数要为偶数,它的最后一位不能为1,否则一定为奇数

    2. 由以上的分析我们可以简单的给出 用这个数 与1 相与 若为0 则为奇数,若不为0 则为偶数

      代码如下:

      import java.util.Scanner;
      
      /**
       * Class day01 ...
       *
       * @author LiJun
       * Created on 2018/12/17
       */
      
      //如何快速的判断一个数是否是偶数
      
          
      public class day01 {
          
          public static void main(String[] args) {
              int n;
              Scanner scanner = new Scanner(System.in);
              while(true){
                  n = scanner.nextInt();
                  if((1&n) == 0){
                      System.out.println(n + "是偶数");
                  }else{
                      System.out.println(n + "是奇数");
                  }
              }
          }
      }
      

事实是第二种相较于第一种是十分高效的,对了我们还能用 n/2*2 == n 来判断这个数是否为偶数,当然这个也是很慢的,在计算机中,位运算是十分高效的。


版权声明:本文为jun8148原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。