小张成长记20200308

大兔子大兔子 提交于 2020-03-08 22:24:30

今日基础小题目:
1、减肥项目
输入星期数,显示今天的减肥活动;周一:跑步;周二:游泳;周三:慢走;周四:动感单车;周五:拳击;周六:爬山;周天:好好吃一顿;`Scanner sc = new Scanner(System.in);

    //.eruals()版本
    
	Scanner sc = new Scanner(System.in);

    while(true){
        System.out.println("请输入星期数:");
        String inp = sc.next();

        if(inp.equals("一")){
            System.out.println("跑步");
        }else if(inp.equals("二")){
            System.out.println("游泳");
        }else if(inp.equals("三")){
            System.out.println("慢走");
        }else if(inp.equals("四")){
            System.out.println("动感单车");
        }else if(inp.equals("五")){
            System.out.println("拳击");
        }else if(inp.equals("六")){
            System.out.println("爬山");
        }else if(inp.equals("七")){
            System.out.println("好好吃一顿");
        }else {
            System.out.println("您输入的时间有误,请重新输入!!!");
        }

    }
//数字版本

Scanner sc = new Scanner(System.in);

while(true){
            System.out.println("请输入星期数:");
            int inp = sc.nextInt();

            if(inp<1 || inp>7){
                System.out.println("您输入的时间有误,请重新输入!!!");
            }else if(inp == 1){
                System.out.println("跑步");
            }else if(inp == 2){
                System.out.println("游泳");
            }else if(inp == 3){
                System.out.println("慢走");
            }else if(inp == 4){
                System.out.println("动感单车");
            }else if(inp == 5){
                System.out.println("拳击");
            }else if(inp == 6){
                System.out.println("爬山");
            }else{
                System.out.println("好好吃一顿");
            }

        }

此为 if 版本

//Switch版本
        while (true){
            System.out.println("请输入星期数:");

            int num = sc.nextInt();

            switch (num) {
                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("您的输入有误,请重新输入!!!");
            }
        }

此为 switch 版本

主要思路:

  1. 键盘录入一个星期数,用一个变量接收
  2. 对星期数进行判断,这里用 if 语句实现
  3. 在对应的语句控制中输出相应的减肥计划

2、逢七过(任意数字开始报数,当遇到7或是7的倍数,都要说:过;打印1-100中符合规则的数据

        System.out.println("请开始报数:");

        int num = sc.nextInt();

        for (int i = num; i <= 100; i++) {
            if (i%7 == 0 || i%10 == 7 || i/10%10 == 7){
                System.out.println("过");
                continue;
            }
            System.out.println(i);
        }

3、不死神兔:有一对兔子在出生后第三个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,请问到第二十个月兔子有多少对
主要思路:

    第一个月:1
    第二个月:1
    第三个月:2 ------->第一个三月
    第四个月:3
    第五个月:5 ------->第二个三月
    第六个月:7
    第七个月:12
    1,1,2,3,5,7,12,19......
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];
        }

        System.out.println("第二十个月的兔子数为:"+arr[19]);
  1. 为了存储多对兔子,定义一个数组,动态初始化长度为20
  2. 一、二月兔子数已知所以arr[0] = 1;arr[1] = 1;
  3. 循环实现计算每个月的兔子数
  4. 输出数组最后一个元素的值(第20个月的兔子对数)

4、百钱百鸡:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买鸡;问鸡翁,鸡母,鸡雏各几何?

for (int x = 0; x <= 20 ; x++) {
            for (int y = 0; y <= 33 ; y++) {
                int z = 100-x-y;

                if(z%3==0 && 5*x+3*y+z/3==100){
                    System.out.println("能买鸡翁的个数为:"+x+"只,"+"鸡母的个数为:"+y+"只,"+"鸡雏的个数为:"+z+"只");
                }
            }
        }

主要思路:

  1. 假设鸡翁X,鸡母Y,鸡雏Z,则X+Y+Z = 100只;5X+3Y+Z/3 = 100钱;
  2. 单看各种鸡型:0 <= X <=20; 0 <= Y <=33; 0 <= Z <= 100;
  3. 使用穷举法可罗列出X,Y,Z 的值
  4. 第一层循环,用于表示鸡翁的范围,初始化表达式变量定义为x = 0;判断条件为x <= 20;
  5. 第二层循环,用于表示鸡母的范围,初始化表达式变量定义为y = 0;判断条件为y <= 33;
  6. 鸡雏表示为:z = 100 - x -y;
  7. 判断表达式z%3 == 0 和 5x+3y+z/3 = 100 是否同时成立,如果成立则输出相对应 x , y , z 的值

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

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);

6、数组内容相同:比较两个数组的内容是否相同

 int[] arr1 = {1, 2, 3, 4, 5, 6};
        int[] arr2 = {1, 2, 3, 4, 5, 4};

        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;
    }

主要思路:

  1. 定义两个数组,进行静态初始化
  2. 定义一个方法,用于比价两个数组是否相同;返回值类型为boolean;参数为int[ ];
  3. 比较数组内容是否相同,首先比较数组长度(只要不同返回false),其次遍历比较每个元素(有不同则返回false)
  4. 调用方法,变量接受
  5. 输出结果
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!