综合练习-1

发布时间 2023-09-15 14:49:28作者: 大宝贝94106

p74 综合练习 01~02 买飞机票和找质数

ctrl + alt + M : 自动抽取方法.

/*
* 1 买飞机票
需求 : 机票的价格按照淡季,旺季,头等舱和经济舱收费, 录入机票的原价,月份和头等舱,经济舱.
按照如下规则计算机票价格 : 旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11-来年4)头等舱7折,经济舱6.5折.
* */
public class PlaneTicket {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Input Price:(number)");
        double price = scanner.nextDouble();//原价
        System.out.println("Input Month:(1~12)");
        int month = scanner.nextInt();//月份
        System.out.println("Input IsFirst:(true/false)");
        boolean isFirst = scanner.nextBoolean();//是否头等舱
        getPrice(price,month,isFirst);
    }

    public static void getPrice(double price, int month, boolean isFirst) {
        if (month >= 5 && month <= 10) {
            if (isFirst) {
                System.out.println(price * 0.9);
            } else {
                System.out.println(price * 0.85);
            }
        } else {
            if (isFirst) {
                System.out.println(price * 0.7);
            } else
                System.out.println(price * 0.65);
        }
    }
}

package Exercise;

/*需求 : 判断101-200之间有多少个质数,并输出所有质数*/
public class FindPrimeNumber {
    public static void main(String[] args) {
        int count = 0; //质数的个数
        //外循环:遍历从101~200, i为被除数
        for (int i = 101; i <= 200; i++) {
            boolean flag = true;    //是否为质数
            int j = 2;      //j为除数
            //内循环:i开始除以j,除数j向上循环累加,也就是i是不是一个质数
            while (j < i){      //除数累加到与被除数相等就结束循环
                if (i % j == 0){   //被一个数除开
                    flag = false;   //就不是质数
                    break;  //只要被一个数除开就跳出循环
                }
                j++;//除数j向上循环累加
            }
            if (flag){  //质数
                System.out.println(i);
                count++;    //累加个数
            }
        }
        System.out.println("有"+ count +"个质数");
    }
}

P75 综合练习 03~04 开发验证码和数字元素的复制

p76 综合练习 05 评委打分

p77 综合练习 06 数字加密和解密

p78 综合练习 07 抽奖的两种实现方式

p79 综合练习 08 双色球彩票系统

p80 综合练习 09 二维数组

实用代码

//1.数组反转
for (int i = 0,j = arr.length-1; i < j; i++,j--) {
            int temp1 = arr[i];
            arr[i] = arr[j];
            arr[j] = temp1;
        }
//2.把数组里的每一个元素进行拼接(数组转整数)
 int number1 = 0;//定义数字变量
        for (int i = 0; i < arr.length; i++) {
            number1 = number1 * 10 + arr[i];
        }
//3.计算数字有多少位(数字的长度)
int number = 12345;
//定义一个变量进行统计
int count = 0;
while(number != 0){
    //每一次循环就去掉右边的数字
	number = number / 10 ;
    //去掉一位计数器就自增一次
    count ++;
}
System.out.println(count);//count就是number的位数.

//4.把整数上的每一位都添加到数组里
 int[] arr = new int[count];//数组长度就是整数的位数
        //把整数的每一位赋值给数组
        int index = arr.length - 1;//新数组的索引,要从最大索引开始赋值,所以初始值是最大索引,再循环自减
        for (int i = 0; i < count; i++) {
            int ge = temp % 10; //被10取模得到最右边一位
            temp = temp / 10;   //再去掉这个数字
            arr[index] = ge;//赋值给数组最后一个元素
            index--;    //再倒数第二个元素
        }