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 + "是奇数"); } } } }
-
(用位运算实现)诚然,上面的代码确实可以做到,但是这个并不是我们想要的结果,因为它太慢了**
-
我们简单的分析一下,从二进制的角度出发,一个数要为偶数,它的最后一位不能为1,否则一定为奇数
-
由以上的分析我们可以简单的给出 用这个数 与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 来判断这个数是否为偶数,当然这个也是很慢的,在计算机中,位运算是十分高效的。