Java ee 从入门到放弃 day06

综合练习

减肥计划if版

package cn.wang.practice.practice;

import java.util.Scanner;

/*
输入星期数(1-7),显示今天的减肥计划(if)
    周一:跑步
    周二:游泳
    周三:慢走
    周四:动感单车
    周五:拳击
    周六:爬山
    周日:好好吃一顿
 */
public class WeightLossProgram {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入星期数(1-7):");
        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("输入有误");
        }
    }
}

减肥计划switch版

package cn.wang.practice.practice;

import java.util.Scanner;
/*
输入星期数(1-7),显示今天的减肥计划(switch)
    周一:跑步
    周二:游泳
    周三:慢走
    周四:动感单车
    周五:拳击
    周六:爬山
    周日:好好吃一顿
 */

public class WeightLossProgramSwitch {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个星期数(1-7):");
        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("输入有误");
                break;
        }
    }
}

逢七过

package cn.wang.practice.practice;
/*
逢七过:在控制台每打印六个(1-100之间包含7或是7的倍数的数字)就换一下行
 */
public class SkipSeven {
    public static void main(String[] args) {
        int num = 0;
        for (int i = 1; i < 101; i++) {
            int a = i % 10;
            int b = i / 10 % 10;
            if(a == 7 || b == 7  || i % 7 == 0){
                num++;
                System.out.print(i + " ");
                if (num % 6 == 0){
                    System.out.println();
                }

            }

        }
    }
}

不死神兔

package cn.wang.practice.practice;
/*有一对兔子,从出生第三个月起每月都生下一对兔子,小兔子长到第三个月后每个月又生一对兔子,
假如兔子不死,问第二十个月的兔子对数为多少?
规律:第一个月,第二个月,第三个月,第四个月,第五个月
          1         1         2         3         5
    从第三个月开始,这个月的兔子对数是上个月和上上个月兔子对数的和,
    最后一个月,就是所有兔子的对数
 */
public class UndeadRabbit {
    public static void main(String[] args) {
        int[] arr =new int[20];
        arr[0] = 1;
        arr[1] = 1;
        for (int i = 2; i < 20; i++) {
            arr[i] = arr[i - 1] + arr[i - 2];
        }
        System.out.println("第二十个月的兔子对数为:"+ arr[19]);
    }
}

百钱百鸡

package cn.wang.practice.practice;
/*
公鸡一只五元,母鸡一只三元,小鸡三只一元。一百块钱买一百只鸡,
问公鸡、母鸡、小鸡各多少个
 */
public class HundredDollarHundredChicken {
    public static void main(String[] args) {
        //公鸡范围只能是0<=i<=20
        for (int i = 0; i <= 20 ; i++) {
            //母鸡范围只能是0<=j<=33
            for (int j = 0; j <=33 ; j++) {
                //小鸡只数只能是整数,又因为它的数量为(100-i-j)所以(100-i-j) % 3 == 0
                //而三种鸡的钱数加一块是100,所以必须满足(5*i + 3*j +(100-i-j)/3)==100
                if ((100-i-j) % 3 == 0 && (5*i + 3*j +(100-i-j)/3)==100){
                    System.out.println("公鸡数:"+i+",母鸡数:"+j+",小鸡数:"+(100-i-j));
                }
            }
        }
    }
}

数组元素求和

package cn.wang.practice.practice;
/*
有一个数组,元素是{68,27,95,88,171,996,51,210},求出该数组中满足要求的元素和。
要求:求和的元素个位和十位都不能是7,并且只能是偶数
 */
public class ArraySum {
    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++) {
            int a = arr[i] % 10;
            int b = arr[i] / 10 % 10;
            if (a != 7 && b != 7 && arr[i] % 2 == 0){
                sum += arr[i];
            }
        }
        System.out.println("满足要求的元素和:" + sum);
    }
}

数组内容相同

package cn.wang.practice.practice;
/*
设计一个方法,用于比较两个数组的内容是否相等
 */
public class MethodEqual {
    public static void main(String[] args) {
        int[] arr ={11,22,33,44,55};
        int[] arr1 ={55,11,22,33,44};
        boolean result = equals(arr,arr1);
        System.out.println(result);
    }
    //创建方法
    public static boolean equals(int[] arr,int[] arr1){
        if (arr.length != arr1.length){
            return false;
        }
        for (int i = 0; i <arr.length ; i++) {
            if (arr[i] != arr1[i]){
                return false;
            }
        }
        return true;
    }
}

查找

package cn.wang.practice.practice;

import java.util.Scanner;

/*
已知一个数组arr = {19,28,37,46,50};键盘输入一个数据,查找该数据在数组中的索引,
并在控制台输出找到的索引
 */
public class ArraySeek {
    public static void main(String[] args) {
        int[] arr = {19,28,37,46,50};
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数据:");
        int num = sc.nextInt();
        int result = seek(arr,num);
        System.out.println("该数据的索引是:" + result);

    }
    public static int seek(int[] arr,int number){
        int index = -1;
        for (int i = 0; i < arr.length; i++) {
            if (number == arr[i]){
                index = i;
               break;
            }
        }
        return index;
    }
}

反转

package cn.wang.practice.practice;
/*
已知一个数组arr = {19,28,37,46,50};用程序实现把数组中的元素值交换,
交换后的数组arr = {50,46,37,28,19};并在控制台输出交换后的数组元素
 */
public class ArrayReverse {
    public static void main(String[] args) {
        int[] arr = {19,28,37,46,50};
        reverse(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;
        }
        for (int i = 0; i < arr.length; i++) {
            if (i==0){
                System.out.print("["+arr[i]);
            }else if (i == arr.length-1){
                System.out.println(","+ arr[i]+"]");
            }else {
                System.out.print(","+arr[i]);
            }
        }
    }

}

评委打分

package cn.wang.practice.practice;

import java.util.Scanner;

/*
有6位评委打分,分数为0-100的整数。
选手最后得分:去掉一个最高分和最低分后剩下评委的平均值(不考虑小数)
 */
public class JudgesScoring {
    public static void main(String[] args) {
        int[] arr = new int[6];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入第" + (i + 1) + "位评委的分数(0-100):");
            int num = sc.nextInt();
            arr[i] = num;
        }
        System.out.print("评委打的分数为:");
        printArray(arr);
        int max = getMax(arr);
        int min = getMin(arr);
        int sum = getSum(arr);
        int result = (sum - max - min) / 4;
        System.out.println("选手最终得分:" + result);
    }

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

    public static int getSum(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }

    public static int getMax(int[] arr) {
        int max = 0;
        for (int i = 0; i < arr.length; i++) {
            max = max > arr[i] ? max : arr[i];
        }
        return max;
    }

    public static int getMin(int[] arr) {
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            min = min < arr[i] ? min : arr[i];
        }
        return min;
    }
}

习题

第一题:分析以下需求并实现

(1)定义方法public static boolean isSym(int[] arr),判断数组中的元素值是否对称,对称返回true,不对称返回false;
(2)在main方法中,定义一个数组,并调用方法。
(3)打印结果:[1,2,3,4,3,2,1]是否对称:true

第二题:分析以下需求并实现

(1)定义一个长度为6的int类型数组,元素值使用随机数生成(范围为50-80)
(2)求出该数组中满足要求的元素和。
要求:求和的元素的个位和十位不能包含7,并且只能为偶数。

昨日习题答案

第一题:分析以下需求,并用代码实现(每个小需求都需要封装成方法)

1.求两个整数之和
2.求两个小数之和
3.判断两个整数是否相等
4.判断两个小数是否相等
5.获取两个整数中较大的值
6.获取两个小数中较大的值
7.获取两个整数中较小的值
8.获取两个小数中较小的值
9.用一个方法获取两个整数中较大的值或较小的值*/
public class Test1 {
    public static void main(String[] args) {
        int a = 10;
        int b = 15;
        //求两个整数之和
        int sum_int = sum(a, b);
        System.out.println(sum_int);
        //求两个小数之和
        double c = 11.11;
        double d = 12.12;
        double sum_double = sum(c, d);
        System.out.println(sum_double);

        //判断两个整数是否相等
        int e = 12;
        int f = 13;
        boolean equals_int = equals(e, f);
        System.out.println(equals_int);

        //判断两个小数是否相等
        double g = 12.23;
        double h = 12.23;

        boolean equals_double = equals(g, h);
        System.out.println(equals_double);

        //获取两个整数中较大的值
        int i = 23;
        int j = 24;
        int max_int = max(i, j);
        System.out.println(max_int);

        //获取两个小数中较大的值
        double k = 45.4;
        double l = 55.55;
        double max_double = max(k, l);
        System.out.println(max_double);

        //获取两个整数中较小的值
        int m = 36;
        int n = 24;
        int min_int = min(m, n);
        System.out.println(min_int);

        //获取两个小数中较大小的值
        double o = 45.4;
        double p = 55.55;
        double min_double = min(o, p);
        System.out.println(min_double);

        //用一个方法获取两个整数中较大的值或较小的值
        int w = 34;
        int x = 25;
        //传入flag变量,来确认是返回最大值还是最小值
        int max_num = max_min(w, x, 1);
        System.out.println(max_num);
        int min_num = max_min(w, x, 0);
        System.out.println(min_num);
    }

    public static int sum(int a, int b) {
        return a + b;
    }

    public static double sum(double c, double d) {
        return c + d;
    }

    public static boolean equals(int e, int f) {
        return e == f;
    }

    public static boolean equals(double g, double h) {
        return g == h;
    }

    public static int max(int i, int j) {
        if (i > j) {
            return i;
        } else {
            return j;
        }
    }

    public static double max(double k, double l) {
        if (k > l) {
            return k;
        } else {
            return l;
        }
    }

    public static int min(int m, int n) {
        if (m > n) {
            return n;
        } else {
            return m;
        }
    }

    public static double min(double o, double p) {
        if (o > p) {
            return p;
        } else {
            return o;
        }
    }

    public static int max_min(int w, int x, int flag) {
        if (flag == 1) {
            //求最大值
            if (w > x) {
                return w;
            } else {
                return x;
            }
        } else {
            //求最小值
            if (w > x) {
                return x;
            } else {
                return w;
            }
        }
    }
}

第二题:

1.定义方法public static boolean isSXH(int num),
	功能:判断数字num是否是水仙花数,如果是返回true,如果不是返回false。
2.在main方法中调用该方法,传入数字,打印结果。(所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。)
	打印:传入数字153,结果为true,该数字是水仙花数。
public class Test2 {
    public static void main(String[] args) {
        int num = 153;
        //定义一个boolean类型的变量接收返回值
        boolean flag = isSXH(num);
        System.out.println(flag);
    }
    public static boolean isSXH(int num) {
        //取出各位 十位 百位的数字
        int ge = num % 10;
        int shi = num / 10 % 10;
        int bai = num / 100;
        if (ge * ge * ge + shi * shi * shi + bai * bai * bai == num) {
            return true;
        } else {
            return false;
        }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值