前两天上课讲了一个逢七过的案例,不过那是固定了范围(0~100),课后我进行了调整,将效果改成任意区间的逢七过数字。 主要是通过将数字的每个位的数字拆分进行比较,而不是通过各位%10,十位/10%10的方式public static void main(String[] args) {
while (true) {
Scanner sca = new Scanner(System.in);
System.out.println("输入一个范围");
System.out.println("请输入起始位置");
int a = sca.nextInt();
System.out.println("请输入起始结束");
int b = sca.nextInt(); getNum(a,b);
}
}
public static void getNum(int a,int b) {
for (int i = a; i <= b; i++) {
/*把输入的int数字,转化成String类型
再将String类型的数字,全部拆开存入char数组中
如 123 ,拆成 '1' '2' '3',存放在数组里面
*/
char[] chars = (i + "").toCharArray();
//遍历数组
for (int j = 0; j < chars.length; j++) {
//如果是7的倍数就直接打印输出,结束循环
if (i % 7 == 0) {
System.out.println(i);
break;
//char数组中有数字7,也输出打印
} else if (chars[j] == '7') {
System.out.println(i);
}
}
}
} 仅是效果方面到达了,程序还有很多优化的地方,欢迎大神指点
|
|