public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 1、初始化变量 System.out.print("请输入左端点:"); Integer leftNum = sc.nextInt(); System.out.print("请输入右端点:"); Integer rightNum = sc.nextInt(); // 2、判断左右端点间的数字符合条件的,跳过 label1:for (int i = leftNum; i <= rightNum; i++) { int[] digits = getDigits(i); for (int j = 0; j < digits.length; j++) { // System.out.print(digits[j] + " "); if (digits[j] == 7) { continue label1; } } if (i%7 == 0) { continue; } System.out.print(i + " "); // 每隔10个数换行 if (i%10 == 0) { System.out.println(); } } } public static int[] getDigits(int num) { // 1、将输入的整数取绝对值 num = Math.abs(num); // 2、得到输入整数的位数 int length = (num + "").length(); // 3、创建数组,存放各位数字 int[] digits = new int[length]; // 4、数字有多少位数,就会做几次除法 for (int i = 0; i < length; i++) { int quotient = num / 10; // 商 int remainder = num % 10; // 余数 digits[length-1-i] = remainder; // 商作为下次除法的被除数 num = quotient; } return digits; }
逢7过(任何范围内的整数)
最新推荐文章于 2024-07-03 19:13:37 发布