根据给定的信息,我们可以归纳出三个与Java编程相关的知识点:整数数组的排序、求两个整数的最大公约数(GCD)以及计算特定范围内奇数的阶乘之和。 ### 整数数组的排序 #### 知识点一:选择排序算法 在`sum2`类中的`sort`方法实现了一种简单的排序算法——选择排序。该算法的基本思想是在未排序序列中找到最小(或最大)元素放到已排序序列的末尾。具体步骤如下: 1. 遍历整个数组,假设第一个元素是最小值。 2. 再次遍历剩余未排序的部分,寻找比当前最小值还小的值。 3. 如果找到了更小的值,则交换它们的位置。 4. 继续这个过程直到数组完全排序完成。 #### 示例代码分析 ```java public class sum2 { public static void sort(int a, int b, int c, int d) { int[] num = new int[4]; num[0] = a; num[1] = b; num[2] = c; num[3] = d; // 外层循环控制比较次数 for (int i = 0; i < 4; i++) { // 内层循环用于找到未排序部分的最小值 for (int j = i + 1; j < 4; j++) { if (num[i] > num[j]) { // 交换位置 int temp = num[j]; num[j] = num[i]; num[i] = temp; } } } // 输出排序后的结果 for (int i = 0; i < 4; i++) { System.out.print(num[i] + "\t"); } } public static void main(String[] args) { sort(6, 1, 4, 5); } } ``` ### 求两个整数的最大公约数 #### 知识点二:递归方法求最大公约数 在`max2`类中的`maxGcd`方法使用了递归来实现欧几里得算法求解两个整数的最大公约数。欧几里得算法是基于这样一个事实:两个正整数的最大公约数与其除法运算的商和余数的最大公约数相同。即对于任意两个正整数\(a\)和\(b\),如果\(a > b\),则有\(\text{gcd}(a, b) = \text{gcd}(b, a \mod b)\)。 #### 示例代码分析 ```java public class max2 { public int maxGcd(int x, int y) { if (y == 0) { return x; } else { return maxGcd(y, x % y); } } public static void main(String[] args) { max2 max = new max2(); int m = 40; int n = 64; int maxG = max.maxGcd(m, n); System.out.println("mnԼ" + maxG); } } ``` ### 计算特定范围内奇数的阶乘之和 #### 知识点三:阶乘与循环结构 在`FactorialSum`类中的`main`方法实现了计算1到15之间所有奇数的阶乘之和的功能。这里使用了一个循环来遍历指定范围内的每个奇数,并调用`factorial`方法来计算该数的阶乘,最后将所有的阶乘结果相加得到总和。 #### 示例代码分析 ```java public class FactorialSum { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 15; i = i + 2) { // 从1开始,每次增加2,直到15 sum += factorial(i); // 调用factorial方法计算i的阶乘并累加 } System.out.println(sum); // 输出最终结果 } public static int factorial(int num) { int fac = 1; for (int m = 1; m <= num; m++) { // 从1累乘到num fac = fac * m; } return fac; } } ``` 通过以上三个示例,我们不仅了解了如何在Java中实现基本的排序算法、利用递归来求解数学问题,还学习了如何利用循环结构来解决实际问题。这些知识点对于Java初学者来说是非常有用的实践案例。
public class sum2 {
public static void sort(int a, int b, int c, int d) {
int[] num = new int[4];
num[0] = a;
num[1] = b;
num[2] = c;
num[3] = d;
for (int i = 0; i < 4; i++) {
for (int j = i + 1; j < 4; j++) {
if (num[i] > num[j]) {
int tem = num[j];
num[j] = num[i];
num[i] = tem;
}
}
}
for (int i = 0; i < 4; i++) {
System.out.print(num[i] + "\t");
}
}
public static void main(String[] args) {
sort(6, 1, 4, 5);
}
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python爬虫-城市数据分析与市场潜能计算所需文件-283地级市数据.xlsx
- 施工场地车检测16-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、VOC数据集合集.rar
- Python爬虫-城市数据分析与市场潜能计算所需文件-283地级市的欧氏距离.xlsx
- IDEA实现javaweb用户登录(增删改查)
- java小游戏飞翔的小鸟的魔改版本.zip
- Java小游戏-猜成语.zip学习资源程序
- Electric_Elegance_1203134028_generate.fbx
- Java小游戏.zip学习代码资源程序大作业
- java小游戏,黄金矿工.zip学习资源程序
- 施工人员防护具检测33-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar