编写函数找出1到1000之内能被3整除且不是偶数的整数

B站影视 内地电影 2025-03-17 17:39 1

摘要:import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class FindNumbers

编写函数找出1到1000之内能被3整除且不是偶数的整数,并按个位数的大小从大到小排序

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class FindNumbers {/*** 找出 1 到 1000 之内能被 3 整除且不是偶数的整数,并按个位数从大到小排序** @return 排序后的整数列表*/public static List findAndSortNumbers {List numbers = new ArrayList;// 1. 找出 1 到 1000 之内能被 3 整除且不是偶数的整数for (int i = 1; i {@Overridepublic int compare(Integer num1, Integer num2) {// 获取 num1 和 num2 的个位数int digit1 = num1 % 10;int digit2 = num2 % 10;// 按个位数从大到小排序 (降序)// 如果 digit2 > digit1,则 num2 应该排在 num1 前面,返回正数// 如果 digit2 result = findAndSortNumbers;System.out.println("符合条件的整数 (按个位数从大到小排序):");for (Integer number : result) {System.out.println(number);}}}

代码解释:

findAndSortNumbers 方法:List numbers = new ArrayList;: 创建一个 ArrayList 类型的 numbers 列表,用于存储符合条件的整数。for (int i = 1; i : 使用 for 循环遍历从 1 到 1000 的所有整数。if (i % 3 == 0 && i % 2 != 0) { ... }: if 条件语句判断当前整数 i 是否同时满足两个条件:i % 3 == 0: 判断 i 是否能被 3 整除 (余数为 0)。i % 2 != 0: 判断 i 是否不是偶数 (余数不为 0),即是否是奇数。如果两个条件都满足,则将整数 i 添加到 numbers 列表中:numbers.add(i);Collections.sort(numbers, new Comparator { ... });: 使用 Collections.sort 方法对 numbers 列表进行排序。numbers: 要排序的列表。new Comparator { ... }: 创建一个匿名内部类,实现 Comparator 接口。Comparator 接口用于定义自定义的比较规则。@Override public int compare(Integer num1, Integer num2) { ... }: 重写 Comparator 接口的 compare 方法。这个方法定义了两个 Integer 对象 num1 和 num2 的比较逻辑。int digit1 = num1 % 10;: 计算 num1 的个位数 (使用 % 10 取余数)。int digit2 = num2 % 10;: 计算 num2 的个位数。return Integer.compare(digit2, digit1);: 使用 Integer.compare(digit2, digit1) 方法比较 digit2 和 digit1。Integer.compare(digit2, digit1) 的作用: 实现 降序排序 (从大到小)。如果 digit2 > digit1,Integer.compare 返回正数,表示 num2 应该排在 num1 前面。如果 digit2 return numbers;: 返回排序后的 numbers 列表。main(String args) 方法:List result = findAndSortNumbers;: 调用 findAndSortNumbers 方法获取结果列表。System.out.println("符合条件的整数 (按个位数从大到小排序):");: 打印提示信息。for (Integer number : result) { System.out.println(number); }: 使用增强型 for 循环遍历 result 列表,并逐行打印每个符合条件的整数。

运行代码:

保存代码: 将代码保存为 FindNumbers.java 文件。编译代码: 在命令行或终端中,使用 javac FindNumbers.java 命令编译 Java 文件。运行代码: 使用 java FindNumbers 命令运行编译后的程序。

程序会在控制台输出符合条件的整数列表,这些整数都是 1 到 1000 之间能被 3 整除且不是偶数的,并且按照个位数从大到小排列。

输出结果示例 (部分):

复制代码符合条件的整数 (按个位数从大到小排序):999993987...27211593

总结:

筛选: 找出 1 到 1000 之间能被 3 整除且不是偶数的整数。排序: 将筛选出的整数按照个位数从大到小进行排序。

代码使用了 ArrayList 存储结果,for 循环进行遍历和筛选,Collections.sort 和自定义 Comparator 实现排序,代码结构良好,易于理解和维护。

来源:露露课堂

相关推荐