学习笔记 7个案例1.逢 7 跳过 2.数组元素求和 3.判断两个数组是否相同 4.查找元素在数组中的 5.数组元素反转 6.评委打分 7.随机产生验证码

目录

标题

案例一

需求:

代码:

 案例二

需求:

代码:


案例一 逢 7 跳过

需求:

朋友聚会的时候可能会玩一个游戏:逢七过。​        
规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。​        
为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。​

代码:

public class Feng7 {
    //主方法,程序入口
    public static void main(String[] args) {
        feng7guo();
    }
    //方法的具体实现
    public static void feng7guo(){
        //for循环遍历1~100
        for (int i = 1; i <= 100; i++) {
            //拆分遍历的数的个位和十位
            int ge = i%10;
            int shi = i/10%10;
            //进行判断,将满足条件的数打印出来
            if (i % 7 == 0||ge==7||shi==7) {
                System.out.println(i);
            }
        }
    }
}

运行结果:

7 14 17 21 27 28 35 37 42 47 49 56 57 63 67 70 71 72 73 74 75 76 77 78 79 84 87 91 97 98 

 案例二 数组元素求和

需求:

有这样的一个数组,元素是 {68,27,95,88,171,996,51,210}
求出该数组中满足要求的元素和
要求是:求和的元素个位和十位都不能是7,并且只能是偶数

代码:

public static void main(String[] args) {
        //定义数组并赋值
        int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};
        System.out.println(arrSum(arr));
    }
    //方法的具体实现
    public static int arrSum(int[] arr) {
        //定义sum存储求和的值
        int sum = 0;
        //for循环遍历数组
        for (int i = 0; i < arr.length; i++) {
            //拆分元素的个位和十位
            int ge = arr[i] % 10;
            int shi = arr[i] / 10 % 10;
            //满足条件的元素记录进sum
            if (arr[i] % 2 == 0 && ge != 7 && shi != 7) {
                sum += arr[i];
            }
        }
        //返回sum
        return sum;
    }

运行结果:

1362

  案例三 判断两个数组元素是否相同

需求:

需求:
定义一个方法,用于比较两个数组的内容是否相同
要求 :  长度, 内容, 顺序完全相同

代码:

public static void main(String[] args) {
        //定义了几个用于测试的数组
        int[] arr1 = {11, 22, 33};
        int[] arr2 = {11, 22, 33};
        int[] arr3 = {44, 55, 66};
        int[] arr4 = {44, 55, 66, 77};
        System.out.println(equalTwoArr(arr1, arr4));
    }
    //具体的方法,定义两个形参用于接收两个数组
    public static boolean equalTwoArr(int[] arr1, int[] arr2) {
        //逆向思考条件
        if (arr1.length != arr2.length) {
            return false;
        } else {
            for (int i = 0; i < arr1.length; i++) {
                if (arr1[i] != arr2[i]) {
                    return false;
                }
            }
        }
        return true;
    }

运行结果:

false

  案例四 查找元素在数组中的索引

需求:

设计一个方法, 查找元素在数组中的索引位置

已知一个数组 arr = {19, 28, 37, 46, 50};  
键盘录入一个数据,查找该数据在数组中的索引。
并在控制台输出找到的索引值。
如果没有查找到,则输出-1

代码:

//main,程序的入口
    public static void main(String[] args) {
        //创建Scanner对象,用于键盘输入
        Scanner sc = new Scanner(System.in);
        //定义问题所需数组
        int[] arr = {19, 28, 37, 46, 50};
        //定义num,接收用户输入的数
        System.out.println("请输入一个数:");
        int num = sc.nextInt();
        //调用arrindex方法
        System.out.println("该数据在数组的索引:"+ arrindex(arr, num));

    }
    //具体方法的实现,接收一个数组和要查找的数
    private static int arrindex(int[] arr, int num) {
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            //判断数组内的元素是否玉num相等
            if (num == arr[i]) {
                //相等就打印数组索引
                return i;
            }
        }
        //没找到,打印-1
        return -1;
    }

运行结果:

请输入一个数:
28
该数据在数组的索引:1

  案例五 数组元素反转

需求:

已知一个数组 arr = {11, 22, 33, 44, 55}; 用程序实现把数组中的元素值交换,
交换后的数组 arr = {55, 44, 33, 22, 11}; 并在控制台输出交换后的数组元素。

代码:

public static void main(String[] args) {
        //定义问题已知数组
        int[] arr = {11, 22, 33, 44, 55,66};
        System.out.println(Arrays.toString(arrEversal(arr)));
    }
    //具体方法实现
    public static int[] arrEversal(int[] arr){
        //循环控制交换的次数
        for (int i = 0; i < arr.length/2; i++) {
            int temp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = temp;
        }
        return arr;
    }

运行结果:

[66, 55, 44, 33, 22, 11]

  案例六 评委打分

需求:

在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。​        
选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值

代码:

public static void main(String[] args) {
        int[] arr = new int[6];
        System.out.println("选手的最后得分为:"+ judgeScore(arr));
    }


    public static int judgeScore(int[] arr){
        Scanner sc = new Scanner(System.in);
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            //录入数据
            System.out.println("请输入第"+(i+1)+"个评委打分");
            int score = sc.nextInt();
            //输入正确录入数组,输入错误返回前一个循环
            if (score>=0&&score<=100){
                arr[i] = score;
            }else {
                System.out.println("你的输入有误!,请重新输入:");
                i--;
            }
        }
        int sum = getsum(arr);
        int min = getmin(arr);
        int max = getmax(arr);

        return (sum-max-min)/(arr.length-2);
    }
    //求最大值
    public static int getmax(int[] arr){
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i]>max){
                max = arr[i];
            }
        }
        return max;
    }
    //求最小值
    public static int getmin(int[] arr){
        int min = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i]<min){
                min = arr[i];
            }
        }
        return min;
    }
    //求和
    public static int getsum(int[] arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
            
        }
        return sum;
    }

运行结果:

请输入第1个评委打分
1
请输入第2个评委打分
20
请输入第3个评委打分
20
请输入第4个评委打分
20
请输入第5个评委打分
20
请输入第6个评委打分
100
选手的最后得分为:20

  案例七 随机产生验证码

需求:

请从26个英文字母(大小写都包含),以及数字0-9中,随机产生一个5位的字符串验证码并打印在控制台
效果:uYq8I,3r4Zj

代码:

public static void main(String[] args) {
        String checkCode = getYanZhengMa();
        System.out.println("生成的验证码为:" + checkCode);
    }
    
    private static String getYanZhengMa() {
        char[] chs = {
                'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
                'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
                'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
                '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
        };
        Random r = new Random();
        String checkCode = "";
        for (int i = 0; i < 5; i++) {
            checkCode += chs[r.nextInt(chs.length)];
        }
        return checkCode;
    }

运行结果:

生成的验证码为:LvDOt

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值