Skip to content

案例

  1. 请编写程序,实现计算“1+3+5+7+…+99”的值。要求如下:

    (1). 使用循环语句实现自然数1~99的遍历。

    (2). 在遍历过程中,通过条件判断当前遍历的数是否为奇数,如果是就累加,否则不加。

java
public class Main {
    //封装一个类进行递归
    public static int getSum(int n){
        int sum = 0;
        if(n==1) {
            return 1;
        } else if (n ==0) {
            return 0;
        } else{
           return  sum = n + getSum(n-2);
        }
    };
    //主函数调用
    public static void main(String[] args){
        int result = getSum(99);
        System.out.println("总数为:"+result);
    }
};
  1. 请使用冒泡排序算法编写程序,实现对数组{25, 24, 12, 76, 101, 96, 28}的排序。

思路:

  1. 外层循环 (i)
    • 控制排序轮数,n 个元素需要 n-1 轮排序(arr.length 次确保完全有序)。
  2. 内层循环 (j)
    • 每轮比较相邻元素,范围 0arr.length - i - 1(已排序部分不再比较)。
  3. 交换逻辑
    • 通过临时变量 temp 实现两个元素的交换,确保较大的数“冒泡”到右侧。
  4. 输出结果
    • 遍历数组并打印,最终输出升序排列的数组。

代码实现:

java
// 定义类名为 Bubble
public class Bubble {
    // 主方法,程序入口
    public static void main(String[] args) {
        // 初始化一个无序数组
        int arr[] = {25, 24, 12, 76, 101, 96, 28};
        // 外层循环:控制排序轮数(每轮确定一个最大值的位置)
        for (int i = 0; i < arr.length; i++) {
            // 内层循环:比较相邻元素,将较大的数往后交换
            // arr.length - i - 1 是因为每轮后末尾已排序部分无需再比较
            for (int j = 0; j < arr.length - i - 1; j++) {
                // 如果前一个元素比后一个大,则交换它们
                if (arr[j] > arr[j + 1]) {
                    // 经典的三步交换法
                    int temp = arr[j + 1];  // 临时保存较小值
                    arr[j + 1] = arr[j];    // 将较大值后移
                    arr[j] = temp;          // 将较小值前移
                }
            }
        }
        // 打印排序后的数组
        for (int k = 0; k < arr.length; k++) {
            System.out.print(arr[k] + " ");  // 输出元素并用空格分隔
        }
    }
}

输出:

12 24 25 28 76 96 101