一、分析
- 键盘录入一个整数num,遍历1~num所有的数,再遍历每个数的各位上的数是否等于7;
-
i / 1 % 10 ==7
判断个位数是否等于7;
-
i / 10 % 10 == 7
判断十位数是否等于7;
-
i / 100 % 10 == 7
判断百位数是否等于7;
··· ···
- 以此类推,遍历个位到最高位,如果遇到等于7的停止遍历更高位,跳入下一个数遍历;
- 每十个数换行
import java.util.Scanner;
public class AllSeven {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();//录入范围
if (num < 1) {
System.out.println("录入数据错误!");
}
sevenPrint(num);//调用sevenPrint()方法
}
public static void sevenPrint(int num) {
int count = 0;//定义一个计数器
for (int i = 1 ; i <= num ; i ++) {//遍历所有范围内的数
for (int j = 0 ; j <= Math.log10(i) ; j ++ ) {//遍历数的各位数字
if (i / (int)(Math.pow(10,j)) % 10 == 7) {//判断各位数是否等于7,其中Math.pow(10,j)返回double类型
System.out.print(i + " ");//如果true,打印出这个数
count ++;//计数器加一
if ((count + 11) % 10 ==0) {//每十个数换行(不加11,第一个数就换行了)
System.out.println();
}
break;//从个位开始遇到7就停止遍历更高位
}
}
}
}
}
网友评论