Java基础知识练习

‍博客主页:i新木优子
Java基础系列教程:传送门
‍♂️寄语:水滴集多成大海,读书集多成学问
欢迎关注点赞收藏⭐留言
作者水平有限,发现错误欢迎留言轰炸

文章目录

  • 1.减肥计划 if 版
  • 2.减肥计划 switch 版
  • 3.逢七过
  • 4.不死神兔
  • 5.百钱百鸡
  • 6.数组元素求和
  • 7.数组内容相同
  • 8.查找
  • 9.反转
  • 10.评委打分


1.减肥计划 if 版

需求:输入星期数,显示今天的减肥计划

  • 周一:跑步
  • 周二:游泳
  • 周三:慢走
  • 周四:动感单车
  • 周五:拳击
  • 周六:爬山
  • 周日:大吃一顿
package com.company;

import java.util.Scanner;

public class Test01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个星期数:");
        int week = sc.nextInt();

        if (week == 1){
            System.out.println("跑步");
        } else if (week == 2){
            System.out.println("游泳");
        } else if (week == 3){
            System.out.println("慢走");
        } else if (week == 4){
            System.out.println("动感单车");
        } else if (week == 5){
            System.out.println("拳击");
        } else if (week == 6){
            System.out.println("爬山");
        } else if (week == 7){
            System.out.println("大吃一顿");
        } else {
            System.out.println("您输入的星期数有误");
        }
    }
}

2.减肥计划 switch 版

需求:输入星期数,显示今天的减肥计划

  • 周一:跑步
  • 周二:游泳
  • 周三:慢走
  • 周四:动感单车
  • 周五:拳击
  • 周六:爬山
  • 周日:大吃一顿
package com.company;

import java.util.Scanner;

public class Test02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个星期数:");
        int week = sc.nextInt();

        switch (week) {
            case 1:
                System.out.println("跑步");
                break;
            case 2:
                System.out.println("游泳");
                break;
            case 3:
                System.out.println("慢走");
                break;
            case 4:
                System.out.println("动感单车");
                break;
            case 5:
                System.out.println("拳击");
                break;
            case 6:
                System.out.println("爬山");
                break;
            case 7:
                System.out.println("大吃一顿");
                break;
            default:
                System.out.println("您输入的星期数有误");
        }
    }
}

3.逢七过

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

package com.company;

public class Test03 {
    public static void main(String[] args) {
        for (int i = 1; i < 101; i++) {
            if (i%10 == 7 || i/10%10 == 7 || i%7 == 0){  //个位是7、十位是7、倍数是7
                System.out.println(i);
            }
        }
    }
}

4.不死神兔

需求:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少

找规律:

第一个月:1

第二个月:1

第三个月:2

第四个月:3

第五个月:5

规律:

​ 从第三个数据开始,每个数据是前两个数据之和

package com.company;

public class Test04 {
    public static void main(String[] args) {
        int[] arr = new int[20];
        arr[0] = 1;
        arr[1] = 1;

        for (int i = 2; i < arr.length; i++) {
            arr[i] = arr[i-2] + arr[i-1];
            /*
            arr[2] = arr[0] + arr[1]
            arr[3] = arr[1] + arr[2]
            ...
             */
        }
        System.out.println("第二十个月兔子的对数为:" + arr[19]);
    }
}

5.百钱百鸡

需求:我国古代数学家张邱建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏个几何

分析:

​ 假设鸡翁x只,鸡母只,鸡雏z只

则:

​ x + y + z =100

​ 5x + 3y +z/3 = 100

如果单独看一只鸡则:

​ 0<=x<=20

​ 0<=y<=33

​ 0<=z<=100

package com.company;

public class Test05 {
    public static void main(String[] args) {
        for (int i = 0; i <= 20; i++) {
            for (int j = 0; j <= 33; j++){
                int z = 100 - i - j;

                if (z%3 == 0 && 5*i + 3*j +z/3 == 100){
                    System.out.println(i+","+j+","+z);
                }
            }
        }
    }
}

6.数组元素求和

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

package com.company;

public class Test06 {
    public static void main(String[] args) {
        int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};

        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]%10 != 7 && arr[i]/10%10 !=7 && arr[i]%2 ==0){
                sum += arr[i];
            }
        }
        System.out.println("sum:" + sum);
    }
}

7.数组内容相同

需求:设计一个方法,用于比较两个数组的内容是否相同

package com.company;

public class Test07 {
    public static void main(String[] args) {
        int[] arr1 = {11, 22, 33, 44, 55};
        int[] arr2 = {11, 22, 33, 44, 55};

        boolean flag = compare(arr1, arr2);
        System.out.println(flag);
    }

    public static boolean compare(int[] arr1, int[] arr2) {
        if (arr1.length != arr2.length) {  // 判断长度是否相同
            return false;
        }

        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i] != arr2[i]) {  // 比较每个元素是否相同
                return false;
            }
        }
        return true;
    }
}

8.查找

需求:已知一个数组arr = {19,28,37,46,50};键盘录入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引值

public class Test08 {
    public static void main(String[] args) {
        int[] arr = {19, 28, 37, 46, 50};
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数据:");
        int number = sc.nextInt();

        int index = getIndex(arr,number);
        System.out.println("index:" + index);

    }
    public static int getIndex(int[] arr, int number){
        int index = -1;  // 定义一个索引变量,初始值为-1

        for (int i = 0; i < arr.length; i++) {
            if (number == arr[i]){
                index = i;
                break;
            }
        }
        return index;
    }
}

9.反转

需求:已知一个数组arr = {19,28,37,46,50};用程序实现把数组中的元素值交换

​ 交换后的数组arr = {50,46,37,28,19};并在控制台输出交换后的数组元素

package com.company;

public class Test09 {
    public static void main(String[] args) {
        int[] arr = {19, 28, 37, 46, 50};

        //调用反转数组的方法
        reverse(arr);
        //调用输出数组方法
        printArray(arr);


    }

    //反转数组
    public static void reverse(int[] arr) {
        for (int start = 0, end = arr.length - 1; start <= end; start++, end--) {
            //交换变量
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
    }

    //输出数组
    public static void printArray(int[] arr) {
        System.out.print("{");
        //遍历数组,进行输出
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(arr[i]);
            } else {
                System.out.print(arr[i] + ",");
            }
        }
        System.out.print("}");
    }

}

10.评委打分

需求:在编程竞赛中,有六个评委为参赛选手打分,分数为0-100的整数分。

​ 选手的最后得分为:去掉一个最高分和一个最低分的4个评委的平均值(不考虑小数)

package com.company;

import java.util.Scanner;

public class Test10 {
    public static void main(String[] args) {
        int[] arr = new int[6];
        //调用评委打分方法
        score(arr);
        //获取最大值方法
        int max = getMax(arr);
        //获取最小值方法
        int min = getMin(arr);
        //数组元素求和方法
        int sum = getSum(arr);
        //求平均值
        int avg = (sum - max - min) / (arr.length - 2);
        System.out.println("选手的最终得分是:" + avg);

    }

    //获取评委打分
    public static void score(int[] arr) {
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入第" + (i + 1) + "个评委的分数");
            arr[i] = sc.nextInt();
        }
    }

    //获取最大值
    public static int getMax(int[] arr) {
        int max = arr[0];
        for (int i = 1; i < arr.length - 1; 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 - 1; 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;
    }
}

你可能感兴趣的:(Java,java,eclipse)