java 判断奇数和偶数

1、最简单正常思维方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.dodo;<br>public class Test {
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer("奇数:"); //同步锁,线程安全,默认长度16
        StringBuilder stringBuilder = new StringBuilder("偶数:");
        for (int i = -100; i <= 100; i++) {
            if (i % 2 == 1) { //不能被2整除即为奇数
                stringBuffer.append(i).append("、");
            } else {
                stringBuilder.append(i).append("、");
            }
        }
        System.out.println(stringBuffer);
        System.out.println(stringBuilder);
    }
}

 2、从计算机角度进行二进制计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.dodo;
public class Test {
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer("奇数:"); //同步锁,线程安全,默认长度16
        StringBuilder stringBuilder = new StringBuilder("偶数:");
        for (int i = -100; i <= 100; i++) {
            if (i >> 1 << 1 != i) {
                stringBuffer.append(i).append("、");
            } else {
                stringBuilder.append(i).append("、");
            }
        }
        System.out.println(stringBuffer);
        System.out.println(stringBuilder);
    }
}

说明:>>右移运算符;<<左移运算符。

如果是偶数右移一位(即除以2)得到的结果为原来的一半,再经过左移一位(即乘以2)得到的结果还是原来的数;

如果是奇数右移一位(即除以2)得到的结果为原来的数减1的一半,再经过左移一位(即乘以2)得到的结果只会比原来的数小

3、通过位运算判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.dodo;
public class Test {
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer("奇数:"); //同步锁,线程安全,默认长度16
        StringBuilder stringBuilder = new StringBuilder("偶数:");
        for (int i = -100; i <= 100; i++) {
            if ((i & 1) == 1) {//按位与,两个数的二进制同为1,结果才为1,否则为0
                stringBuffer.append(i).append("、");
            } else {
                stringBuilder.append(i).append("、");
            }
        }
        System.out.println(stringBuffer);
        System.out.println(stringBuilder);
    }
}

说明:&:按位与运算。两个数的二进制同为1,结果才为1,否则为0;由于1的二进制除了末尾是1,其余全是0,故任何数&1之后,除最后位外其余位皆为0。而奇数的末尾是1,偶数的末尾是0,故奇数&1后还是1,偶数&1后是0。

以上三种方式打印出的结果如下:

1
2
奇数:-99、-97、-95、-93、-91、-89、-87、-85、-83、-81、-79、-77、-75、-73、-71、-69、-67、-65、-63、-61、-59、-57、-55、-53、-51、-49、-47、-45、-43、-41、-39、-37、-35、-33、-31、-29、-27、-25、-23、-21、-19、-17、-15、-13、-11、-9、-7、-5、-3、-1、1、3、5、7、9、11、13、15、17、19、21、23、25、27、29、31、33、35、37、39、41、43、45、47、49、51、53、55、57、59、61、63、65、67、69、71、73、75、77、79、81、83、85、87、89、91、93、95、97、99、
偶数:-100、-98、-96、-94、-92、-90、-88、-86、-84、-82、-80、-78、-76、-74、-72、-70、-68、-66、-64、-62、-60、-58、-56、-54、-52、-50、-48、-46、-44、-42、-40、-38、-36、-34、-32、-30、-28、-26、-24、-22、-20、-18、-16、-14、-12、-10、-8、-6、-4、-2、0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48、50、52、54、56、58、60、62、64、66、68、70、72、74、76、78、80、82、84、86、88、90、92、94、96、98、100、

 

posted @   胡桃里等你  阅读(1378)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示