JAVA基础10:基础知识练习

1.案例:减肥计划

package com.maicangfenxiang;
/*
    需求:输入星期数,显示今天的减肥活动
        周一:跑步
        周二:游泳
        周三:慢走
        周四:动感单车
        周五:拳击
        周六:爬山
        周日:好好吃一顿
      导包:
        1.手动导包:import java.util.Scanner;
        2.快捷键导包:Alt + Enter
        3.自动导包
 */

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语句实现
        /*
        if (week < 1 || week > 7) {
            System.out.println("您输入的星期数有误!");
        } else 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 {
            System.out.println("周日:好好吃一顿");
        }
         */
        //使用Switch实现
        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("您输入的星期数有误!");

        }
    }
}

2.案例:逢七过

package com.maicangfenxiang;

/*
    需求:
        朋友聚会的时候可能会玩一个游戏:逢七过。
        规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。
        为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。
        这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。
 */
public class Test02 {
    public static void main(String[] args) {
        for (int x = 1; x <= 100; x++) {
            if (x % 10 == 7 || x / 10 % 10 == 7 || x % 7 == 0) {
                System.out.println(x);
            }
        }
    }
}

3.案例:不死神兔

package com.maicangfenxiang;

import java.util.Scanner;

/*
   需求:
        有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
        请在屏幕上输入一个大于等于3的月份,如果输入的月份不正确需要重新输入,直到输入的月份正确为止。
        假如兔子都不死,问第N个月的兔子对数为多少?
 */
public class Test03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个月份数moon(moon>=3):");
        while(true){
            int moon = sc.nextInt();
            if(moon<3){
                System.out.println("您输入的月份不正确,请重新输入:");
            }else{
                int[] arr = new int[moon];
                arr[0]=1;
                arr[1]=1;

                for(int x = 2;x<arr.length;x++){
                    arr[x]=arr[x-1]+arr[x-2];
                }
                System.out.println("第"+arr.length+"个月兔子的对数是:"+arr[arr.length-1]);
                break;
            }
        }
    }
}

4.案例:百钱百鸡

package com.maicangfenxiang;
/*
    需求:
        在我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱5,鸡母一值钱三,鸡雏三值钱一。
        百钱买白鸡,问鸡翁、鸡母、鸡雏个几何?
 */
public class Test04 {
    public static void main(String[] args) {
        //第1层循环,用于表示鸡翁的范围,初始化表达式的变量定义为 x=0, 判定条件 0<= x <=20
        for(int x=0;x<=20;x++){
            //第2层循环,用于表示鸡母的范围,初始化表达式的变量定义为 y=0, 判定条件 0<= y <=33
            for(int y=0;y<=33;y++){
                //这个时候,用于表示鸡雏的变量 z = 100 - x - y
                int z = 100 - x - y;
                //判断表达式,z%3 == 0 和表达式 5*x + 3*y + z/3 = 100
                if((z%3 == 0) && (5*x + 3*y + z/3 == 100)){
                    System.out.println("鸡翁:"+x+"、鸡母:"+y+"、鸡雏:"+z);
                }
            }
    }
    }
}

5.案例:数组元素求和

package com.maicangfenxiang;

/*
    需求:
        有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。
        求出该数组中满足要求的元素和,要求是:求和的元素各位和十位都不能是7,并且只能是偶数
 */
public class Test05 {
    public static void main(String[] args) {
        int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};
        int sum = 0;
        for (int x = 0; x < arr.length; x++) {
            if (arr[x] % 10 != 7 && arr[x] / 10 % 10 != 7 && arr[x] % 2 == 0) {
                sum += arr[x];
            }
        }
        System.out.println("sum:" + sum);
    }
}

6.案例:数组内容相同

package com.maicangfenxiang;
/*
       需求:
            设计一个方法,用于比较两个数组的内容是否相同
            思路:
            比较两个数组的长度是否相等
            比较两个数组的每个对于元素是否相等
 */
public class Test06 {
    public static void main(String[] args) {
        int[] arr = {11,22,33,44,55,66,77};
        int[] arr2 = {11,22,33,44,55,66,77};
        boolean flag = compare(arr,arr2);
        System.out.println(flag);
    }
    public static boolean compare(int[] arr,int[] arr2){
        if(arr.length != arr2.length){
            return false;
        }
        for(int x = 0;x<arr.length;x++){
            if(arr[x] != arr2[x]){
                return false;
            }
        }
        return true;
    }
}

7.案例:查找

package com.maicangfenxiang;

import java.util.Scanner;

/*
    需求:
        已知一个数组arr ={19,28,37,46,50};键盘录入一个数据,
        查找该数据在数组中的索引,并在控制台输出找到的索引值。
        数据:19   28  37  46  50
        索引:0    1   2   3   4
        如果找不到对应的索引,返回-1
 */
public class Test07 {
    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();
        System.out.println(number+"的索引:"+getID(arr,number));
    }
    public static int getID(int[] arr,int number){
        for(int x =0;x<arr.length;x++){
            if(number == arr[x]){
                return x;
            }
        }
        return -1;
    }
}

8.案例:反转

package com.maicangfenxiang;

/*
    需求:
        已知一个数组arr={19,28,37,46,50};用程序实现把数组中的元素值交换,
        交换后的数组arr={50,46,37,28,19};并在控制台输出交换后的数组元素。
        0 1 2 3 4
 */
public class Test08 {
    public static void main(String[] args) {
        int[] arr = {19, 28, 37, 46, 50};
        reverseArr(arr);
        printArr(arr);
    }

    public static int[] reverseArr(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;
        }
        return arr;
    }

    public static void printArr(int[] arr) {
        System.out.print("[");
        for (int x = 0; x < arr.length; x++) {
            if (x == arr.length - 1) {
                System.out.print(arr[x]);
            } else {
                System.out.print(arr[x] + ",");
            }
        }
        System.out.println("]");
    }
}

9.案例:评委打分

package com.maicangfenxiang;

import java.util.Scanner;

/*
    需求:
        在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
        选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分)。
 */
public class Test09 {
    public static void main(String[] args) {
        int[] arr = new int[6];
        arr = inputArr(arr);
        //printArr(arr);
        int max = getMaxArr(arr);
        int min = getMinArr(arr);
        int sum = getSumArr(arr);
        int score = (sum-max-min)/(arr.length-2);
        System.out.println("选手的最后得分为:"+score);
    }
    //求和
    public static int getSumArr(int[] arr){
        int sum = 0;
        for(int x=0;x<arr.length;x++){
            sum += arr[x];
        }
        return sum;
    }
    //求最大值
    public static int getMaxArr(int[] arr){
        int max = arr[0];
        for(int x=0;x<arr.length;x++){
            if(max<arr[x]){
                max = arr[x];
            }
        }
        return max;
    }
    //求最小值
    public static int getMinArr(int[] arr){
        int min = arr[0];
        for(int x=0;x<arr.length;x++){
            if(min>arr[x]){
                min = arr[x];
            }
        }
        return min;
    }

    //键盘录入
    public static int[] inputArr(int[] arr) {
        Scanner sc = new Scanner(System.in);
        for (int x = 0; x < arr.length; x++) {
            System.out.println("请输入第" + (x + 1) + "个评委的打分:");
            arr[x] = sc.nextInt();
        }
        return arr;
    }

    //遍历数组
    public static void printArr(int[] arr) {
        System.out.print("[");
        for (int x = 0; x < arr.length; x++) {
            if (x == arr.length - 1) {
                System.out.print(arr[x]);
            } else {
                System.out.print(arr[x] + ",");
            }
        }
        System.out.println("]");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值