java 判断奇数和偶数
1.ArrayList、LinkedList和Vector
2.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、 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南