首页 > 其他 > 详细

第15节基础语法练习-终

时间:2021-01-25 09:10:03      阅读:26      评论:0      收藏:0      [点我收藏+]

案例:减肥计划

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

    周一:跑步

    周二:游泳

    周三:慢走

    周四:动感单车

    周五:拳击

    周六:爬山

    周日:好好吃一吨

package itheima_02;
import java.sql.SQLOutput;
import java.util.Scanner;

public class Test01 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        System.out.print("请输入星期数:");
        int num=sc.nextInt();
        switch(num){
            case 1:
                System.out.println("今天是星期"+num+",跑步");
                break;
            case 2:
                System.out.println("今天是星期"+num+",游泳");
                break;
            case 3:
                System.out.println("今天是星期"+num+",慢走");
                break;
            case 4:
                System.out.println("今天是星期"+num+",动感单车");
                break;
            case 5:
                System.out.println("今天是星期"+num+",拳击");
                break;
            case 6:
                System.out.println("今天是星期"+num+",爬山");
                break;
            case 7:
                System.out.println("今天是星期"+num+",好好吃一吨");
                break;
            default:
                System.out.println("请输入星期数");
                break;
        }

    }
}

导包:

  1、手动导包 import java.util.Scanner;

  2、快捷键导包 Alt+Enter

  3、自动导包

 

案例:逢七过

  需求:朋友聚会的时候可能会玩一个游戏:逢7过。规则:从任意一个数字开始报数,当你要报的数字

    包含7或者是7的倍数时就要说:过。为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印

    出1-100之间的满足逢七过规则的数据。

    这样,大家将来玩游戏的时候,就知道哪些数据要说:过。

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

public class Test02 {
    public static void main(String[] args) {
        for(int i=1;i<=100;i++){
            if((i%10==7)||(i/10%7==7)||(i%7==0)){
                System.out.println(i+"过");
            }
        }
    }
}

 

案例:不死神兔

  需求:有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子

    ,假如兔子都不死,问第二十个月的兔子对数为多少?

    找规律:

    第一个月:1

    第二个月:1

    第三个月:2

    第四个月:3

    第五个月:5

    ....

    数据连起来:1,1,2,3,5....

    规律:从第三个数据开始,每一个数据时前两个数据之和。第一个,第二个数据时已知的。

 

  思路:

  1、为了存储多个月的兔子对数,定义一个数组,用动态初始化完成数组元素的初始化,长度为20

  2、因为第一个月,第二个月兔子的对数是已知的,都是1,所以数组的第一个元素,第2个元素值也都是1

  3、用循环实现计算每个月的兔子对数

  4、输出数组中最后一个元素的值,就是第20个月的兔子对数

package itheima_02;
/*
*   需求:有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子
           ,假如兔子都不死,问第二十个月的兔子对数为多少?
           *     
           第一个月:1
        第二个月:1
        第三个月:2
           第四个月:3
        第五个月:5
        ....

       数据连起来:1,1,2,3,5....
       规律:从第三个数据开始,每一个数据时前两个数据之和。第一个,第二个数据时已知的。
* */

public class Test03 {
    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];
            System.out.println(arr[i]);
        }
        System.out.println(arr[19]);
    }
}

 

案例:百钱百鸡

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

    百钱买百鸡,问鸡翁,鸡母,鸡雏各几何?

  分析:假设鸡翁x只,鸡母y只,鸡雏z只,则下面的式子是成立的

      x+y+z=100

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

     如果单独只看一种鸡型,则下面的式子是成立的

      0<=x<=20

      0<=y<=33

      0<=z<=100

     使用穷举法就可以罗列出x,y,z的值。

  思路:

  1、第一层循环,用于表示鸡翁的范围,初始化表达式的变量定义为x=0;判断条件是x<=20

  2、第二层循环,用于表示鸡母的范围,初始化表达式的变量定义为y=0;判断条件是x<=33

  3、这个时候,用于表示鸡雏的变量z=100-x-y

  4、判断表达式z%3==0和表达式5*x+3*y+z/3=100是否同时成立,如果成立,输出对应的x,y,z的值

    就是对应的鸡翁,鸡母,鸡雏的值。

package itheima_02;
/*
*       需求:我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,母鸡一值钱三,鸡雏三值一钱。
     百钱买百鸡,问鸡翁,鸡母,鸡雏各几何?
* */

public class Test04 {
    public static void main(String[] args) {
        int z = 0;
        for (int x = 0; x <= 20; x++) {
            for (int y = 0; y <= 33; y++) {
                z = 100 - x - y;
                if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {
                    System.out.println(x + "," + y + "," + z);
                }
            }
        }
    }
}

 

案例:数组元素求和

  需求:有这样的一个数组,元素是{68,27.95,88,171,996,51,210}。求出该数组中满足要求的元素和,要求是:求和的元素

     个位和十位都不能是7,并且只能是偶数。

package itheima_02;

/*
*   需求:有这样的一个数组,元素是{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 i = 0; i < arr.length; i++) {
            if (arr[i] % 2 == 0 && arr[i] % 10 != 7 && arr[i] / 10 % 7 != 7) {
                sum += arr[i];
                System.out.println(arr[i]+"题意");
            }
        }
        System.out.println(sum+"答案");
    }
}

 

案例:数组内容相同

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

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

public class Test06 {
    public static void main(String[] args) {
        int[] arr1={1,2,3,4,5,6,7,8,9};
        int[] arr2={1,2,3,4,5,6,7,8,9};
        boolean a = arrNumber(arr1,arr2);
        System.out.println(a);
    }
    public static boolean arrNumber(int[] arr1,int[] arr2){
        if(arr1.length!=arr2.length){
            return false;
        }
        for(int i=0;i<arr1.length;i++){
            for(int j=0;j<arr2.length;j++){
                if(arr1[i]!=arr2[i]) {
                    return false;
                }
            }
        }
        return true;
    }
}

 

案例:查找

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

    并在控制台输出找到的索引值。

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

public class Test07 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        int[] arr={19,28,37,46,50};
        int num1=-1;
        System.out.println("请输入一个数");
        int num=sc.nextInt();
        for (int i=0;i<arr.length;i++){
            if(arr[i]==num){
                num1=i;
                break;
            }
        }
        System.out.println(num1+"");
    }
}

 

案例:反转

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

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

package itheima_02;
/*
*   需求:已知一个数组arr={19,28,37,46,50};用程序实现把数组中的元素值交换;
       交换后的数组arr={50,46,37,28,19};并在控制台输出交换后的数组元素。
*
* */


public class Test08 {
    public static void main(String[] args) {
        int[] arr={19,28,37,46,50};
        for(int i=arr.length-1;i>=0;i--){
            System.out.print(arr[i]+"\t");
        }
    }
}

 

案例:评委打分

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

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

package itheima_02;
/*
  需求:在编程竞赛中,有6个评委为参赛选手打分,分数为0-100的整数分。
        选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分)。
* */

import java.util.Scanner;

public class Test09 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int[] arr = new int[6];
        int num;
        int max;
        int min;
        max = 0;
        min = 100;
        int sum = 0;
        int avg = 0;
        for (int i = 0; i < arr.length; i++) {
            System.out.println("第" + (i + 1) + "个评委开始打分:");

            num = sc.nextInt();
            if (num >= 0 && num <= 100) {
                arr[i] = num;
                if (max < arr[i]) {
                    max = arr[i];
                } else if (min > arr[i]) {
                    min = arr[i];
                }
                sum += arr[i];
            }else{
                System.out.println("评分有误");
                System.exit(0);
            }
        }
        avg = (sum - max - min) / (arr.length - 2);
        System.out.println("去掉一个最高分:" + max + "分,去掉一个最低分:" + min + "分,4个评委的平均值:" + avg + "分");
    }
}

  注意:

  System.exit(0);
  //这行代码可以直接结束程序

第15节基础语法练习-终

原文:https://www.cnblogs.com/fangbin-caoqiaomeng/p/14322903.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!