代码:
public class Test {
public static void main(String[] args) {
// 测试数据
int a = 101;
int b = 200;
// 提示语
System.out.println(a + "和" + b + "之间的所有奇数如下:");
// 调用测试方法
System.out.println(a + "和" + b + "之间有" + getOddNum(a, b) + "个奇数");
}
/**
* 获得两个值之间的奇数个数
*
* @param a 开始值
* @param b 结束值
* @return
*/
private static int getOddNum(int a, int b) {
// 奇数个数
int num = 0;
// 存储所有的奇数
StringBuilder sb = new StringBuilder();
// 只要遍历完了,那就可以了
while (a <= b) {
// 奇数个数加1
num++;
// 将奇数存储到里面
sb.append(a).append(" ");
// 在原来奇数的基础上加2,然后就找到了下一个奇数
a += 2;
}
// 输出所有奇数
System.out.println(sb.toString());
// 返回奇数个数
return num;
}
}
结果:
101和200之间的所有奇数如下:
101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199
101和200之间有50个奇数
解释:
其实这道题并不难,我认为考察的点是代码执行效率,最直接的思路是通过对2取余进行判断,不过我们都知道奇数加2后肯定是一个奇数,或者偶数加上2肯定是一个偶数,所以根据这个常识就可以省去了判断环节,因此效率更高,另外我还在里面使用了StringBuilder可变字符串对象,这也可以提高效率