1~5节. 编程训练习题课

疯狂练一练

每一题都有非常详细的注释, 如果大家有其他更简单的思路, 可以在评论区交流, 或者私信一起讨论.

1、定义一个方法,该方法能够找出两个小数中的较小值并返回。

package com.itheima.lxh_exercise;

public class Exercise {
    public static void main(String[] args) {
        //  声明两个变量, 并附初始值
        int a=6,b=3;
        // 使用打印输出的方式 调用方法
        System.out.println("最小值为: "+outMin(a,b));
    }
    /*
     * @Author LXHYouth
     * @Date 12:34 2024/3/8
     * @Param [a, b]
     * @return int
     * @Description 比较两个数的大小, 输出最小值
     **/
    public static int outMin(int a,int b){
        return a<b?a:b;
    }
}

2、定义一个方法判断整数数组中某一个数是否存在,并将结果返回

package com.itheima.lxh_exercise;

/**
 * @className: ExerciseTwo
 * @author: LXHYouth
 * @date: 2024/3/8 14:28
 * @Version: 1.0
 * @description:
 */
public class ExerciseTwo {
    public static void main(String[] args) {
        // 初始化一个数组
        int[] arr={2, 1, 3, 5, 4};
        // 定义一个变量
        int a=3;
        System.out.println(existNumber(a,arr));
    }

    /*
     * @Author LXHYouth
     * @Date 14:28 2024/3/8
     * @Param [a, arr]
     * @return boolean
     * @Description 查看数组中是否含被传入的数值
     **/
    public static boolean existNumber(int a,int[] arr){
        // 循环遍历整个数组,
        for (int i = 0; i < arr.length; i++) {
            // 判断整数数组中某一个数是否存在
            if(a==arr[i]){
                // 含有相等的直接返回true, 结束方法
                return true;
            }
        }
        // 没有相等的返回 false
        return false;
    }
}
 

3、定义一个方法统计指定范围(例如100~200)之间能被3整除的数,并将数放入一个数组中返回

package com.itheima.lxh_exercise;

import java.util.Scanner;

/**
 * @className: ExerciseThree
 * @author: LXHYouth
 * @date: 2024/3/8 14:35
 * @Version: 1.0
 * @description:
 */
public class ExerciseThree {
    // 定义一个私有的静态的全局变量, 用来计数
    private static int count;
    public static void main(String[] args) {
        // 定义一个扫描器对象
        Scanner scanner = new Scanner(System.in);
        // 最大最小值
        int max=0,min=0;
        // 输入错误后进行循环输入
        while (true) {
            System.out.print("请输入最大范围值(正整数): ");
            // 定义最大最小范围
            max = scanner.nextInt();
            System.out.print("请输入最小范围值(正整数): ");
            min = scanner.nextInt();
            // 对输入数值的有效性进行判断
            if (min > max || min < 0 || max < 0) {
                System.out.print("输入错误,请重新输入.");
            }else {
                break;
            }
        }
        int[] arr=arrayList(max,min);
        System.out.println(min+"~"+max+"之间能被3整除的有:" );
        // 获取真正被存入数组中数据的个数
        for (int i = 0; i < count; i++) {
            System.out.print(arr[i]+" ");
            if((i+1)%5==0){
                System.out.println();
            }
        }
    }

    /*
     * @Author LXHYouth
     * @Date 16:28 2024/3/8
     * @Param [max, min]
     * @return int[]
     * @Description 传入范围的最大最小值, 以数组的形式返回范围内所有能被3整除的数值
     **/
    public static int[] arrayList(int max, int min) {
        int[] arr = new int[1000];
        for (int i = min; i <= max; i++) {
            if (i % 3 == 0) {
                // 全集变量记录存入数组的个数, 以便其他方法使用
                arr[count] = i;
                count++;
            }
        }
        // 返回数组
        return arr;
    }
}
 

4、定义一个方法,接收一个整型数组,判定数组中的元素是否是升序排列,并将结果返回

package com.itheima.lxh_exercise;

/**
 * @className: ExerciseFour
 * @author: LXHYouth
 * @date: 2024/3/8 16:33
 * @Version: 1.0
 * @description:
 */
public class ExerciseFour {
    public static void main(String[] args) {
        int[] arr={1,3,3,5,7};
        System.out.println("是否为升序数列: "+ascendingOrderArr(arr));

    }

    /*
     * @Author LXHYouth
     * @Date 16:44 2024/3/8
     * @Param [arr]
     * @return boolean
     * @Description 传入一个数组, 返回是否为升序数列
     **/
    public static boolean ascendingOrderArr(int[] arr){
        // 循环只能到索引减1的位置, arr[i+1]会超出最大索引
        for (int i = 0; i < arr.length-1; i++) {
            if(arr[i]>arr[i+1]){
                return false;
            }
        }
        return true;
    }
}
 

5、设计一个方法,可以接收1个整数n(比如4)来代表行数,然后使用方法打印出下面的图形状

打印效果如下:
@
@@
@@@
@@@@
package com.itheima.lxh_exercise;

import java.util.Scanner;

/**
 * @className: ExerciseFive
 * @author: LXHYouth
 * @date: 2024/3/8 16:47
 * @Version: 1.0
 * @description:
 */
public class ExerciseFive {
    public static void main(String[] args) {
        // 创建一个扫描器对象
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入打印的行数: ");
        // 调用打印方法
        printChar(scanner.nextInt());

    }
    public static void printChar(int number){
        for (int i = 0; i < number; i++) {
            for (int j = 0; j < i+1; j++) {
                System.out.print("@");
            }
            System.out.println();
        }
    }
}
 

5.1 这道不死神兔题: 如果一开始有一对兔子,它们每月生育一对兔子,小兔在出生后一个月又开始生育且繁殖情况与最初的那对兔子一样,那么一年后有多少对兔子?

实质就是斐波那契数列(黄金分割数列)

//待解决(正在解决中, 正在作图看看怎么才能更好的表达清楚)

6、数字是有绝对值的,非负数的绝对值是它本身,负数的绝对值是它本身取反。

​ 请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试。

package com.itheima.lxh_exercise;

import java.util.Scanner;

/**
 * @className: ExerciseSix
 * @author: LXHYouth
 * @date: 2024/3/8 16:58
 * @Version: 1.0
 * @description:
 */
public class ExerciseSix {
    public static void main(String[] args) {
        // 创建一个扫描器对象
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个数: ");
        double number= scanner.nextDouble();
        System.out.println("这个数的绝对值为: "+absoluteValue(number));

    }

    /*
     * @Author LXHYouth
     * @Date 17:10 2024/3/8
     * @Param [number]
     * @return double
     * @Description 输入一个数, 返回其绝对值
     **/
    public static double absoluteValue(double number){
        // 只有小于零的一种情况数值的绝对值不是本身
        if(number<0){
            number=-number;
        }
        return number;
    }
}
 

7、定义一个方法,接收两个整数作为数值范围,然后在控制台打印出范围内之间的满足逢七必过的数

​ 逢七必过规则(数字包含7或者是7的倍数)

package com.itheima.lxh_exercise;

import java.util.Scanner;

/**
 * @className: ExerciseSeven
 * @author: LXHYouth
 * @date: 2024/3/8 17:13
 * @Version: 1.0
 * @description:
 */
public class ExerciseSeven {
    public static void main(String[] args) {
        // 创建扫描器对象
        Scanner scanner = new Scanner(System.in);
        // 最大最小值
        int max=0,min=0;
        // 输入错误后进行循环输入
        while (true) {
            System.out.print("请输入最大范围值(正整数): ");
            // 定义最大最小范围
            max = scanner.nextInt();
            System.out.print("请输入最小范围值(正整数): ");
            min = scanner.nextInt();
            // 对输入数值的有效性进行判断
            if (min > max) {
                System.out.print("输入错误,请重新输入.");
            }else {
                break;
            }
        }
        // 调用方法
         takeOutSeven(max,min);
    }

    /*
     * @Author LXHYouth
     * @Date 18:25 2024/3/8
     * @Param [max, min]
     * @return void
     * @Description 传入最大最小范围, 剔除所有数字中包含7或者是7的倍数的
     **/
    public static void takeOutSeven(int max,int min){
        // 用于计数
        int count=0;
        // 遍历范围内所有数
        for (int i = min; i <= max; i++) {
            // 创建判断语句, 用于判断外层是否跳过
            boolean judge=false;
            // 不是7倍数, 但是有可能含有7数字的特殊情况
            if(i%7!=0){
                // 避免i被赋值而出现变化, 使用临时变量代替
                int temp=i;
                // 判断数值所有位数上的数字, 当每一位上都没含数字7时, 最高位除以10等于0时跳出循环
                while (temp>0) {
                    if (temp%10%7!=0){
                        temp /=10;
                    }else{
                        // 当有一位上的数是7, 令值位true
                        judge=true;
                        // 结束内层循环
                        break;
                    }
                }
                // 判断是否跳出外层循环
                if(judge){
                    // 当judge为true时, 说明当前数, 某位上含有数字7,就不输出
                    // 跳过本次循环, 对下一个数进行判断
                    continue;
                }
                System.out.print(i+" ");
                // 每输出一个计数加一
                count++;
                // 输入五个数, 控制换行
                if (count%5==0){
                    System.out.println();
                }

            }
        }
    }
}
 

8、定义一个方法,接收一个小数数组(小数点后只有1位),然后找出数组中准整数有几个返回

​ 准整数指的是小数点之后全是0的小数

package com.itheima.lxh_exercise;

/**
 * @className: TranslateEight
 * @author: LXHYouth
 * @date: 2024/3/8 20:43
 * @Version: 1.0
 * @description:
 */
public class ExerciseEight {
    public static void main(String[] args) {
        double[] arr={3.342,3.01,54,43.75,33.0};
        System.out.println(quasiInteger(arr));
    }

    /*
     * @Author LXHYouth
     * @Date 10:53 2024/3/10
     * @Param [arr]
     * @return int
     * @Description 接收浮点数组寻找数组中的准整数个数, 并返回个数
     **/
    public static int quasiInteger(double[] arr){
        // 用于记录准整数个数
        int count=0;
        // 遍历所有的数
        for (int i = 0; i < arr.length; i++) {
            // 去掉小数位
            int temp=(int)arr[i];
            // 判断如果相等就为在准整数
            if(temp==arr[i]){
                count++;
            }
        }
        return count;
    }
}
 

9、请定义一个方法,对正数的小数进行四舍五入的操作(不考虑负数情况)。

​ 四舍五入之后的结果是一个int整数类型并返回。

提示:四舍五入的操作关键是十分位(小数第一位),如何获取十分位?

package com.itheima.lxh_exercise;
import java.util.Scanner;
/**
 * @className: ExerciseNight
 * @author: LXHYouth
 * @date: 2024/3/10 10:56
 * @Version: 1.0
 * @description:
 */

public class ExerciseNight {
    public static void main(String[] args) {
        // 创建一个扫描器对象
        Scanner sacnner = new Scanner(System.in);
        System.out.print("请输入一个正数: ");
        // 接受输入的正数
        double number=sacnner.nextDouble();
        System.out.print("四舍五入后为: ");
        // 调用四舍五入的方法
        System.out.println(roundingOff(number));


    }
    /*
     * @Author LXHYouth
     * @Date 13:32 2024/3/10
     * @Param [number]
     * @return int
     * @Description 对一个数进行四舍五入操作, 这里使用的是获取小数位与0.5进行比较
     *              方法二: 把数乘10强转成int型, 然后对10取余,
     *                     余数就是十分位(小数位第一位), 然后对5比较进行四舍五入
     **/
    public static int roundingOff(double number){
        // 获取整数的小数位
        double temp=number-(int)number;
        // 判断小数位是四舍还是五入
        if (temp<0.5){
            return (int)number;
        }
        return ((int)number+1);
    }

}
 

10、现有一个整数数组,数组中的每个元素都是[0-9]之间的数字,从数组的最大索引位置开始到最小索引位置,依次表示整数的个位、十位、百位。。。依次类推。请编写程序计算,这个数组所表示的整数值。例如:

数组:{2, 1, 3, 5, 4}
表示的整数为:21354 // 注:是整数类型的两万一千三百五十四,不是字符串拼起来的。

思路一:

package com.itheima.lxh_exercise;
public class ExerciseTen {
    public static void main(String[] args) {
        // 初始化数组
        int[] arr={2, 1, 3, 5, 4};
        System.out.println("数组表示的值为: "+sumIntoNumbers(arr));
    }
    /*
     * @Author LXHYouth
     * @Date 14:18 2024/3/10
     * @Param [arr]
     * @return int
     * @Description 素组中存储的值合成一个多位数
     **/
    public static int sumIntoNumbers(int[] arr){
        int number=0;
        int multiplier=1;
        // 根据题意从数组的最大索引位置开始到最小索引位置,依次表示整数的个位、十位、百位。。。
        for (int i = arr.length-1; i >=0 ; i--) {
            number+=arr[i]*multiplier;
            multiplier*=10;
        }
        return number;
    }
}
 

思路二:

package com.itheima.lxh_exercise;

public class ExerciseTenOther {
    public static void main(String[] args){
        // 初始化一个数组
        int[] arr={2, 1, 3, 5, 4};
        System.out.println(sumIntoNumbers(arr));

    }
    /**
     * @Author LXHYouth
     * @Date 19:58 2024/3/12
     * @Param [arr]
     * @return int
     * @Description 把数组存储的数据组建成一个数字
     **/
    public static int sumIntoNumbers(int[] arr){
        int sum=0;
        // 数组从索引 0到arr.length-1, 对应着数的最高位到最低位
        // sum=sum*10+arr[i];
        // 可以使用把数组遍历出来的数, 在最右端添加一个零(也就是乘个10), 然后加上遍历出来数
        // 如sum=sum*10+arr[0]=2 ->sum=2*10+arr[1]=21
        //  sum=21*10+arr[2]=213  继续往下推就可以得到数
        for(int i=0;i<arr.length;i++){
            sum=sum*10+arr[i];
        }
        // 返回最后的得到的值
        return sum;
    }
}
 

11、定义一个数组其中包含多个数字。用自己的方式最终实现,奇数放在数组的左边,偶数放在数组的右边。(可以创建其他数组,不必须在原数组中改变)

package com.itheima.lxh_exercise;

import java.util.Arrays;

/**
 * @className: ExerciseEleven
 * @author: LXHYouth
 * @date: 2024/3/10 15:02
 * @Version: 1.0
 * @description:
 */

/*
11、定义一个数组其中包含多个数字。用自己的方式最终实现,奇数放在数组的左边,偶数放在数组的右边。(可以创建其他数组,不必须在原数组中改变)
 */
public class ExerciseEleven {
    public static void main(String[] args){
        // 初始化一个数组
        int[] arr={23,54,23,55,43,78,436,79};
        // 使用数组中的方法直接打印
        System.out.println(Arrays.toString(distinguish(arr)));
    }
    /**
     * @Author LXHYouth
     * @Date 20:19 2024/3/12
     * @Param [arr]
     * @return int[]
     * @Description  重新排列数组实现奇数放数组左边, 偶数放数组右边
     **/
    public static int[] distinguish(int[] arr){
        // 定义左索引
        int indexL=0;
        // 定义右索引, 使用右边开始存, 索引则为最大索引
        int indexR=arr.length-1;

        // 创建一个新数组用来存储判断后的值
        int[] newArr=new int[arr.length];
        // 判断数据是奇数还是偶数, 然后存入数组
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]%2==0){
                newArr[indexR]=arr[i];
                // 存入后像前移
                indexR--;
            }else{
                newArr[indexL]=arr[i];
                indexL++;
            }
        }
        return newArr;
    }

}
 

12、已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中第一次出现的索引。

​ 并在控制台输出找到的索引值。如果没有查找到,则输出-1

package com.itheima.lxh_exercise;

import java.util.Scanner;

/**
 * @className: ExerciseTwelve
 * @author: LXHYouth
 * @date: 2024/3/10 16:15
 * @Version: 1.0
 * @description:
 */

/*
已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中第一次出现的索引。

   并在控制台输出找到的索引值。如果没有查找到,则输出-1
 */
public class ExerciseTwelve {
    public static void main(String[] args){
        // 初始化一个数组
        int[] arr ={19, 28, 37, 46, 50};
        // 创建一个扫描器对象
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个整数: ");
        // 存储键盘输入的值
        int number= scanner.nextInt();
        // 方法返回的索引值
        int index=find(arr, number);
        if(index==-1){
            System.out.println("你输入的数不存在!");
        }else {
            System.out.println("你输入的数在数组中的索引为: "+index);
        }
    }
    /**
     * @Author LXHYouth
     * @Date 20:25 2024/3/12
     * @Param [arr, number]
     * @return int
     * @Description     查找数组中是否存在键盘输入值
     **/
    public static int find(int[] arr,int number){
        for (int i = 0; i < arr.length; i++) {
            // 如果发现数组中有相等的数值就返回当时索引
            if(arr[i]==number){
                return i;
            }
        }
        //  如果没有找到相等值就返回-1
        return -1;
    }

}
 

13、能够合理的设计方法参数和返回值, 并调用方法

需求描述:模拟一个简单的考试管理系统, 已知成绩为 10, 20, 30, 40, 50, 60, 70, 80

  • 程序运行后, 展示一个菜单, 根据用户输入的选择, 程序响应不同的业务逻辑
  • 程序需要一直运行, 直到用户输入 6 的时候, 程序结束

实现提示

  • 将需要操作的多个成绩, 存入一个数组中
  • 使用输出语句构建出菜单
  • 利用 switch 或者是 if 语句, 区分出用户输入的 1 2 3 4 5 6
  • 1 ~ 5 每一个都是一段独立的功能, 所以定义5个方法, 分别实现业务功能
  • 在用户输入 1 ~ 5 的时候, 调用对应的方法
// 答:
package com.itheima.a_class;

import java.util.Scanner;

public class Demo8 {
    public static void main(String[] args) {
        // 创建一个数组存储学生成绩
        int[] studentScoresArr = {10, 20, 30, 40, 50, 60, 70, 80};
        // 定义一个变量存储操作数
        int inputNumber = 0;
        // 创建一个扫描器对象
        Scanner scanner = new Scanner(System.in);
        // 使用死循环, 是键盘可以一直输入
        while (inputNumber != 6) {
            System.out.println("-----------------------");
            System.out.println("欢迎来到黑马考试管理系统");
            System.out.println("1. 查看成绩");
            System.out.println("2. 查看最高分");
            System.out.println("3. 查看最低分");
            System.out.println("4. 查看平均分");
            System.out.println("5. 查看不及格人数");
            System.out.println("6. 退出");
            System.out.println("-----------------------");
            // 接收键盘输入的操作数
            inputNumber = scanner.nextInt();
            // 判断输入的操作数, 应调用哪个方法
            switch (inputNumber) {
                case 1:
                    scores(studentScoresArr);
                    break;
                case 2:
                    maxScore(studentScoresArr);
                    break;
                case 3:
                    minScore(studentScoresArr);
                    break;
                case 4:
                    avgScore(studentScoresArr);
                    break;
                case 5:
                    fluck(studentScoresArr);
                    break;
                case 6:
                    // 输入6时打印感谢语, 使用return退出程序
                    System.out.println("感谢你的使用, 再见!");
                    return ;
                default:
                    System.out.println("输入错误请重新输入:");
            }
        }
    }

    /*
     * @Author LXHYouth
     * @Date 20:17 2024/3/7
     * @Param [arr]
     * @return void
     * @Description 打印学生成绩
     **/
    public static void scores(int[] arr) {
        System.out.print("学生成绩为: [");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
            if(i<arr.length-1){
                System.out.print(",");
            }
        }
        System.out.println("]");
    }

    /*
     * @Author LXHYouth
     * @Date 20:18 2024/3/7
     * @Param [arr]
     * @return void
     * @Description 获取最高分
     **/
    public static void maxScore(int[] arr) {
        int  max=Integer.MIN_VALUE;
        for (int i = 0; i < arr.length; i++) {
            max=max>arr[i]?max:arr[i];
        }
        System.out.println("最高分为: "+max);
    }

    /*
     * @Author LXHYouth
     * @Date 20:18 2024/3/7
     * @Param [arr]
     * @return void
     * @Description 获取最低分
     **/
    public static void minScore(int[] arr) {
        int  min=Integer.MAX_VALUE;
        for (int i = 0; i < arr.length; i++) {
            min=min<arr[i]?min:arr[i];
        }
        System.out.println("最低分为: "+min);
    }

    /*
     * @Author LXHYouth
     * @Date 20:18 2024/3/7
     * @Param [arr]
     * @return void
     * @Description 获取全班平均成绩
     **/
    public static void avgScore(int[] arr) {
        double sum=0;
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];
        }
        System.out.println("平均分为: "+(sum/arr.length));
    }

    /*
     * @Author LXHYouth
     * @Date 20:19 2024/3/7
     * @Param [arr]
     * @return void
     * @Description 获取班级不及格人数
     **/
    public static void fluck(int[] arr) {
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]<60){
                count++;
            }
        }
        System.out.println("不及格人数有:"+count);
    }

}


拔高题

1、定义一个方法,在键盘上接收10个整数,然后对10个整数进行按照从小到大的顺序放入一个数组中返回

练习冒泡

package com.itheima.lxh_exercise;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @className: RaiseOne
 * @author: LXHYouth
 * @date: 2024/3/10 17:30
 * @Version: 1.0
 * @description:   使用的方法为冒泡排序
 */

/*
1、定义一个方法,在键盘上接收10个整数,然后对10个整数进行按照从小到大的顺序放入一个数组中返回
 */

public class RaiseOne {
    public static void main(String[] args){
        // 创建一个计数器
        int count=0;
        // 创建一个接收数据的数组
        int[] arr=new int[10];
        // 创建一个扫描器对象
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入10个整数(以空格隔开): ");
        // 使用while循环控制输入次数, 然后存储到数组
        while(count<10){
            arr[count]= scanner.nextInt();
            count++;
        }
        // 这里是使用了Arrays.toString(), 直接可以对数组进行打印,
        // 代替一下for循环(主打一个偷懒)
        System.out.println(Arrays.toString(arrangeInOrder(arr)));

    }
    // 创建一个方法对数组进行从小到大的排列
    public static int[] arrangeInOrder(int[] arr){
        // for循环控制需要调换数值的次数
        for (int i = 0; i < arr.length-1; i++) {
            // 对于循环次数, 外层循环每循环一次说明又有一个数已经排好序了, 然后内层循环就可以少进行i次比
            for (int j = 0; j <arr.length-1-i ; j++) {
                // 如果碰到数组的前一个, 比后一个大就进行调换
                if (arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }

            }
        }
            return arr;
    }
}
 

2、定义一个方法,接收一个数组,然后将数组中的最大值与第一个元素交换,最小值与最后一个元素交换,然后将数组返回

package com.itheima.lxh_exercise;

import java.util.Arrays;

/**
 * @className: RaiseTwo
 * @author: LXHYouth
 * @date: 2024/3/10 20:27
 * @Version: 1.0
 * @description:
 */

/*
2、定义一个方法,接收一个数组,然后将数组中的最大值与第一个元素交换,最小值与最后一个元素交换,然后将数组返回
 */
public class RaiseTwo {
    public static void main(String[] args) {
        // 初始化一个数组
        int[] arr={3,6,2,6,8,2,4,43,211,8};
        // 打印输入整理后的数组
        System.out.println(Arrays.toString(findTheBestValue(arr)));
    }
    public static int[] findTheBestValue(int[] arr){
        // 初始化最大值最小值
        int min=Integer.MAX_VALUE;
        int max=Integer.MIN_VALUE;
        // 找到传入数组中的最大最小值
        for(int i=0;i<arr.length;i++){
            min=min<arr[i]?min:arr[i];
            max=max>arr[i]?max:arr[i];
        }
        // 判断最大最小值的位置, 然后与第一个和最后一个元素进行交换
        for(int i=0;i<arr.length;i++){
            if(arr[i]==max){
                int temp=arr[i];
                arr[i]=arr[0];
                arr[0]=temp;
            }
            if(arr[i]==min){
                int temp =arr[i];
                arr[i]=arr[arr.length-1];
                arr[arr.length-1]=temp;
            }
        }
        //
        return arr;
    }
}

3、定义一个方法,接收两个整数,计算并返回两个整数的最大公约数

package com.itheima.lxh_exercise;

import java.util.Scanner;

/**
 * @className: RaiseThree
 * @author: LXHYouth
 * @date: 2024/3/10 20:58
 * @Version: 1.0
 * @description:
 */
/*
3、定义一个方法,接收两个整数,计算并返回两个整数的最大公约数
 */
public class RaiseThree {
    public static void main(String[] args){
        // 创建一个扫描器对象
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入两个整数(以空格隔开): ");
        int number1=scanner.nextInt();
        int number2=scanner.nextInt();
        System.out.println(number1+"和"+number2+"的最大公约数为: "+greatestCommonDivisor(number1,number2));

    }
    public static int greatestCommonDivisor(int number1,int number2){
        // 定义一个条件变量
        int condition=(number1<number2?number1:number2);
        // 定义一个变量存放最大公约数
        int max=0;
        for(int i=1;i<=condition;i++){
            if(number1%i==0&&number2%i==0){
                max=i;
            }
        }
        return max;
    }

}
 

4、定义一个方法,接收一个整数数组,请判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false

package com.itheima.lxh_exercise;

/**
 * @className: RaiseFive
 * @author: LXHYouth
 * @date: 2024/3/10 21:55
 * @Version: 1.0
 * @description:
 */
/*
定义一个方法,接收一个整数数组,请判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 `true` ;否则,返回 `false`
 */
public class RaiseFive {
    public static void main(String[] args){
        // 定义了多个数组进行测验
//        int[] arr={2,4,4,5,6,8};
        int[] arr={2,-3,4,5,-7,9};
//        int[] arr={2,2,3,5,8,9};
//        int[] arr={2,2,3,5,8,9};
        System.out.println(oddContinuous(arr));
    }

    /**
     * @Author LXHYouth
     * @Date 20:50 2024/3/12
     * @Param [arr]
     * @return boolean
     * @Description     判断数组中是否存在连续三个元素都是奇数, 存在返回true, 不存在返回false
     **/
    public static boolean oddContinuous(int[] arr){
        // 用于计数连续存在了几个奇数
        int count=0;
        // 遍历数组进行判断
        for (int i = 0; i < arr.length; i++) {
            // 如果发现是奇数count加1
            if(arr[i]%2!=0){
                count++;
                // 当count为3时, 说明符合要求, 结束程序返回true
                if (count==3){
                    return true;
                }
            }else{
                // 当出现偶数时, 重置计数器, 又开始从零计算
                count=0;
            }
        }
        // count一直没有到3, 说明不满足题意,返回false
        return false;
    }
}
 

  • 到此教程就结束了.
  • 转载: 请附上本文链接.
  • 如果文章对你有帮助, 可以点赞收藏一下, 以防下次需要可以快速找到.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/451315.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年,真的别裸辞....

作为IT行业的大热岗位——软件测试&#xff0c;只要你付出了&#xff0c;就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的&#xff0c;但放眼望去&#xff0c;哪个工作不是这样的呢&#xff1f;会有哪家公司愿意养一些闲人呢&#xff1f;…

理论学习:Softmax层和全连接层 全连接层之前的数据

Softmax层和全连接层 Softmax层和全连接层在深度学习模型中通常是紧密相关的&#xff0c;经常一起使用。 全连接层&#xff08;也称为线性层或密集连接层&#xff09;是深度学习模型中常见的层之一&#xff0c;它将输入张量与权重矩阵相乘&#xff0c;并添加偏置项&#xff0c;…

PaddleOCR表格识别运行实例

目录 PaddleOCR 开源项目地址 一、数据集 1. 训练数据下载 2.数据集介绍 &#xff08;1&#xff09;PubTabNet数据集 &#xff08;2&#xff09; 好未来表格识别竞赛数据集 &#xff08;3&#xff09;WTW中文场景表格数据集 二、训练步骤 1.数据放置 2.环境配置 &…

k8s-生产级的k8s高可用(2) 25

部署containerd k8s2、k8s3、k8s4在配置前需要重置节点&#xff08;reset&#xff09;在上一章已完成 禁用所有节点docker和cri-docker服务 所有节点清除iptables规则 重置后全部节点重启 由于之前部署过docker&#xff0c;因此containerd默认已安装 修改配置 启动containe…

OpenCV学习笔记(一)——Anaconda下载和OpenCV的下载

OpenCV是图象识别中有巨大的应用场景&#xff0c;本篇文章以Python为基础。当初学OpenCV的时候&#xff0c;推使用在Anaconda编写代码&#xff0c;原因比较方便&#xff0c;下面我们对于Anaconda的下载过程进行演示。 Anaconda的下载 首先打开官网www.anaconda.com/download找…

Midjourney绘图欣赏系列(十)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子&#xff0c;它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同&#xff0c;Midjourney 是自筹资金且闭源的&#xff0c;因此确切了解其幕后内容尚不…

力扣701. 二叉搜索树中的插入操作

思路&#xff1a;往二叉搜索树中插入一个值&#xff0c;树的结构有多种符合的情况&#xff0c;那我们可以选一种最容易的插入方式&#xff0c;反正只需要插入一个值而已&#xff0c;我们不难发现&#xff0c;不管插入什么值&#xff0c;都可以安排插入到叶子节点上。 再利用二叉…

uview upicker时间选择器(附Demo)

目录 前言正文 前言 uniapp时间选择器&#xff0c;是upicker&#xff0c;与微信小程序还是有些区别 补充官网的基本知识&#xff1a;uview官网 官网的展示例子如下&#xff1a;&#xff08;但是没Demo&#xff09; 正文 通过上面的展示图&#xff0c;复刻一个类似Demo图&am…

小兔鲜鲜项目(前端vue3)

成果图 大家喜欢给一个赞被&#xff0c; 项目地址&#xff1a;gitee 注意&#xff1a;项目克隆下去之后先运行 npm i之后安装项目插件包之后在npm run dev 运行就可以了

【Mysql】事务与索引

目录 MySQL事务 事务的特性 并发事务的问题&#xff1f; 事务隔离级别&#xff1f; MySQL索引 数据结构 索引类型 聚簇索引与非聚簇索引 聚集索引的优点 聚集索引的缺点 非聚集索引的优点 非聚集索引的缺点 非聚集索引一定回表查询吗(覆盖索引)? 覆盖索引 联合索…

识别恶意IP地址的有效方法

在互联网的环境中&#xff0c;恶意IP地址可能会对网络安全造成严重威胁&#xff0c;例如发起网络攻击、传播恶意软件等。因此&#xff0c;识别恶意IP地址是保护网络安全的重要一环。IP数据云将探讨一些有效的方法来识别恶意IP地址。 IP地址查询&#xff1a;https://www.ipdata…

springboot265基于Spring Boot的库存管理系统

基于Spring Boot库存管理系统 Inventory Meanagement System based on Spring Boot 摘 要 当下&#xff0c;如果还依然使用纸质文档来记录并且管理相关信息&#xff0c;可能会出现很多问题&#xff0c;比如原始文件的丢失&#xff0c;因为采用纸质文档&#xff0c;很容易受潮…

Redis底层核心对象RedisObject源码分析

文章目录 1. redis底层数据结构2. 插入KV底层源码流程分析 1. redis底层数据结构 redis 6数据结构和底层数据结构的关系 String类型本质是SDS动态字符串&#xff0c;即redis层面的数据结构底层会有对应的数据结构实现&#xff0c;上面是redis 6之前的实现 redis 7数据结构和底…

Terrace联合创始人兼CEO Jesse Beller确认出席Hack.Summit() 2024区块链开发者大会

在科技创新的浪潮中&#xff0c;区块链技术以其独特的去中心化、透明性和安全性&#xff0c;正逐渐成为引领未来发展的重要力量。在这样的背景下&#xff0c;备受瞩目的Hack.Summit() 2024区块链开发者大会即将于4月9日至10日在香港数码港盛大举行。本次大会的亮点之一&#xf…

程序员春招攻略:金三银四的求职智慧与机遇

文章目录 程序员的金三银四求职宝典方向一&#xff1a;面试技巧分享自我介绍的艺术技术问题的回答策略团队协作经验的有效展示压力面试的应对结束语的巧妙运用 方向二&#xff1a;面试题解析数据结构与算法题系统设计题编程题 方向三&#xff1a;公司文化解读腾讯&#xff08;T…

软件设计不是CRUD(14):低耦合模块设计理论——行为抽象与设计模式(上)

是不是看到“设计模式”四个字,各位读者就觉得后续内容要开始讲一些假大空的内容了?各位读者是不是有这样的感受,就是单纯讲设计模式的内容,网络上能找到很多资料,但是看过这些资料后读者很难将设计模式运用到实际的工作中。甚至出现了一种声音:设计模式是没有用的,应用…

机试:最大子序列的和

问题描述: 算法思想: 若第(i-1)个序列的小于0,则第i个序列的最大值为nums[i]; 若第(i-1)个序列的小于0,则第i个序列的最大值为max(i-1) nums[i]; 如果max(i-1)>0,max(i)max(i-1)Nums(i) 如果max(i-1)<0,max(i)Nums(i)代码示例: #include <bits/stdc.h> //该算法…

ULTRAL SCALE FPGA TRANSCEIVER速率

CPLL支持2-6.25速率 QPLL支持速率 实际使用CPLL最高可以超过这个&#xff0c;QPLL最低也可以低于这个&#xff0c;xilinx留的阈量还是比较大。

蓝桥杯真题讲解:子矩阵(二维滑动窗口)

蓝桥杯真题讲解&#xff1a;子矩阵&#xff08;二维滑动窗口&#xff09; 一、视频讲解二、正解代码 一、视频讲解 蓝桥杯真题讲解&#xff1a;子矩阵&#xff08;二维滑动窗口&#xff09; 二、正解代码 //二维单调队列 #include<bits/stdc.h> #define endl \n #def…

C# 视频转图片

在 C# 中将视频转换为图像可以使用 FFmpeg 库。下面是一个示例代码来完成这个任务&#xff1a; using System; using System.Diagnostics;class Program {static void Main(string[] args){string inputFile "input_video.mp4"; // 输入的视频文件路径string outpu…