【一些练习-学习笔记】

机票价格按照淡季.旺季和头等舱和经济舱收费,输入机票原价.月份和头等舱或经济舱.
按照如下规则计算机票价格:旺季(5-10月)头等舱9折.经济舱8.5折;淡季(11月-来年4月)头等舱7折.经济舱6.5折

package test;
import java.util.Scanner;
public class test1 {
    public static void main(String[] args) {
       //机票价格按照淡季.旺季和头等舱和经济舱收费,输入机票原价.月份和头等舱或经济舱.
       //按照如下规则计算机票价格:旺季(5-10月)头等舱9折.经济舱8.5折;淡季(11月-来年4月)头等舱7折.经济舱6.5折
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入机票初始价格");
        int primaryPrice = sc.nextInt();
        System.out.println("请输入购买月份");
        int month = sc.nextInt();
        System.out.println("请输入机票等级:0头等舱.1经济舱");
        int airTicket = sc.nextInt();
        int lastPrice = 0;
        if(month >= 5 && month <= 10){
            lastPrice = getLastPrice(airTicket, primaryPrice,0.9,0.85);
        }else{
            lastPrice = getLastPrice(airTicket, primaryPrice,0.7,0.65);
        }
        System.out.println("最终机票价格为:"+lastPrice+"元");
    }
    public static int getLastPrice(int airTicket, int primaryPrice,double v1,double v2) {
        int lastPrice;
        if(airTicket == 0){
            lastPrice = (int)(primaryPrice * v1);
        }else{
            lastPrice = (int)(primaryPrice * v2);
        }
        return lastPrice;
    }
}

求101-100之间有多少质数,并打印所有质数

package test;
public class test2 {
    public static void main(String[] args) {
        int sum = 0;
        for(int i = 101; i <= 200; i++){
            if(number(i) != 0){
                sum++;
                System.out.print(i);
            }
        }
        System.out.println();
        System.out.println(sum);
    }
    public static int number(int num){
        boolean flag = true;
        for(int i = 2; i <100; i++){
            if(num % i == 0){
                flag = false;
                return 0;
            }
        }
        return num;
    }
}

** 定义方法实现随机产生的5位验证码
验证码格式:1.长度为5 2.前四位是大写字母或者小写字母 3.最后一位是数字!!!**

package test;
import java.util.Random;
public class test3 {
    public static void main(String[] args) {
        String result = number();
        System.out.println(result);
    }
    public static String number(){
        //65-90.97-122
        char[] chs = new char[52];
        for (int i = 0; i < chs.length; i++) {
            if(i <= 25){
                chs[i] = (char)(97 + i);
            }else{
                chs[i] = (char)(65 + i - 26);
            }
        }
        Random r = new Random();
        String result = "";
        for(int i = 0;i < 5; i++){
            int randomIndex = r.nextInt(chs.length);
            result = result + chs[randomIndex];
        }
        int number = r.nextInt(10);
        result = result + number;
        return result;
    }
}

** 把一个数组中的元素复制到另一个新的数组中去**

package test;
public class test4 {
    public static void main(String[] args) {
        int[] arr1 = {11,22,33,44,55};
        int[] arr2 = new int[arr1.length];
        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }
    }
}

在唱歌比赛中,有6名评委给选手打分,分数范围[0-100]之间的整数.选手最后得分:去掉最高分.最低分后的4个评委的平均分.
//请完成上述过程并计算出选手的得分

package test;

import java.util.Scanner;

public class test5 {
    public static void main(String[] args) {
        //在唱歌比赛中,有6名评委给选手打分,分数范围[0-100]之间的整数.选手最后得分:去掉最高分\最低分后的4个评委的平均分.
        //请完成上述过程并计算出选手的得分
        int[] score = getInts();
        int maxScore = score[1];
        int minScore = score[1];
        maxScore = getMaxScore(score, maxScore);
        minScore = getMinScore(score, minScore);
        int sum = getSum(score, maxScore, minScore);
        int avg = sum / (score.length-2);
        System.out.println(avg);
    }

    public static int getSum(int[] score, int maxScore, int minScore) {
        int sum = 0;
        for (int i = 0; i < score.length; i++) {
            if(score[i] != maxScore && score[i] != minScore){
                sum += score[i];
            }
        }
        return sum;
    }

    public static int getMinScore(int[] score, int minScore) {
        for (int i = 0; i < score.length; i++) {
            if(score[i] < minScore){
                minScore = score[i];
            }
        }
        return minScore;
    }

    public static int getMaxScore(int[] score, int maxScore) {
        for (int i = 0; i < score.length; i++) {
            if(score[i] > maxScore) {
                maxScore = score[i];
            }
        }
        return maxScore;
    }

    public static int[] getInts() {
        Scanner sc = new Scanner(System.in);
        int[] score = new int[6];
        for (int i = 0; i < score.length; ) {
            System.out.println("请分别输入每位评委的分数:");
            int scores = sc.nextInt();
            if(scores >= 0 && scores <= 100){
                score[i] = sc.nextInt();
                i++;//要注意i的位置,只有输入数字符合条件才将其存入数组当中
            }
        }
        return score;
    }
}

某系统的数字密码(大于0),比如1983,财通加密方式进行传输
规则如下:每位数字加上5,再对10求余,最后将所有数字反转,得到一串新数

package test;

public class test6 {
    public static void main(String[] args) {
        //计算出数组的长度
        int number = 12345;
        int number2 = number;
        int count = 0;
        while(number != 0){
            number2 /= 10;
            count ++;
        }
        //用一个数组存储密码
        int[] arr = new int[count];
        int index = arr.length-1;
        while(number != 0){
            int ge = number % 10;
            number /= 10;
            arr[index] = ge;
            index--;
        }
        //加密
        for (int i = 0; i < arr.length; i++) {
            arr[i] += 5;
        }
        for (int i = 0; i < arr.length; i++) {
            arr[i] %= 10;
        }
        for (int i = 0,j = arr.length-1; i < arr.length; i++,j--) {//记住这种数组反转的方式!不要再用另一个数组啦!!!
            int temp = arr[i];
            arr[j] = arr[i];
            arr[i] = temp;
        }
        int resultNumber = 0;
        for (int i = 0; i < arr.length; i++) {
            resultNumber *= 10;
            resultNumber += arr[i];
        }
        System.out.println(resultNumber);
    }
}

将加密后的数据解密出来

package test;
public class test7 {
    public static void main(String[] args) {
        //计算数组的长度
        int number = 8346;
        int length = 0;
        int tempNumber = number;
        while(tempNumber != 0){
            tempNumber /= 10;
            length ++;
        }
        //将其保存在数组当中+反转
        int[] arr = new int[length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = number % 10;
            number /= 10;
        }
        //计算取余10的反向操作,反向操作后最大为14最小为5
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] + 10 <= 14 && arr[i] + 10 >= 5){
                arr[i] +=10;
            }
        }
        System.out.println();
        //所有数字减5
        for (int i = 0; i < arr.length; i++) {
            arr[i] -=5;
        }
        //将数组内数字存入int变量
        int resultNumber = 0;
        for (int i = 0; i < arr.length; i++) {
            resultNumber = resultNumber * 10 +arr[i];
        }
        System.out.println(resultNumber);
    }
}

一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}五个奖金.请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复(无方法)

package test;
import java.util.Random;
public class test8 {
    public static void main(String[] args) {
        //将数据存入数组
        int[] bonus = {2,588,888,1000,10000};
        //用随机数抽取奖励,抽过的变为0,跳过
        Random r = new Random();
        for (int i = 0; i < bonus.length;) {
            int number = r.nextInt(bonus.length);
            if(bonus[number] != 0){
                System.out.println(bonus[number] + "元奖金被抽出");
                bonus[number] = 0;
                i++;
            }
        }
    }
}

** 双色球系统**

package test;
import java.util.Random;
import java.util.Scanner;
public class test9 {
    public static void main(String[] args) {
        //随机生成中奖号码
        int[] number = new int[7];
        getNumber(number);
        //用户输入中奖号码
        int[] userNumber = new int[7];
        System.out.println("请输入7位中奖号码");
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < userNumber.length; i++) {
            userNumber[i] = sc.nextInt();
        }
        //判断中奖情况
        int prize = getPrize(number,userNumber);
        System.out.println(prize);
    }
    public static int getPrize(int[] number,int[] userNumber){
        int prize = 0;
        int redBallNum = 0;
        int blueBallNum = 0;
        for (int i = 0; i < userNumber.length-1; i++) {
            for (int i1 = 0; i1 < number.length-1; i1++) {
                if(userNumber[i] == number[i1]){
                    redBallNum ++;
                }
            }
        }
        if(userNumber[userNumber.length-1] == number[number.length-1]){
            blueBallNum ++;
        }
        if(redBallNum == 6 && blueBallNum == 1){
            return 10000000;
        }else if(redBallNum == 6 && blueBallNum == 0){
            return 5000000;
        }else if(redBallNum == 5 && blueBallNum == 1){
            return 3000;
        }else if((redBallNum == 5 && blueBallNum == 0) || (redBallNum == 4 && blueBallNum == 1)){
            return 200;
        }else if((redBallNum == 4 && blueBallNum == 0) || (redBallNum == 3 && blueBallNum == 1)){
            return 10;
        }else if((redBallNum == 2 && blueBallNum == 1) || (redBallNum == 1 && blueBallNum == 1) || (redBallNum == 0 && blueBallNum == 1)){
            return 5;
        }else{
            return 0;
        }
    }
    public static void getNumber(int[] number){
        Random r = new Random();
        for (int i = 0; i < number.length; i++) {
            if(i < number.length-1){
                number[i] = r.nextInt(33) + 1;
            }else{
                number[i] = r.nextInt(16) + 1;
            }
            //System.out.println(number[i]);
        }
    }
}

某商城每个季度的营业额如下:单位(万元)
第一季度22,66,44.第二季度77,33,88.第三季度25,45,65第四季度11,66,99,计算出每个季度的总营业额和全年总营业额.

package test;
public class test10 {
    public static void main(String[] args) {
        int[][] money = {{22,66,44},//建议将每个一维数组单独写一行
                {77,33,88},
                {25,44,65},
                {11,66,99}
        };
        int sum = 0;
        int[] everyMoney = new int[4];
        for (int i = 0; i < money.length; i++) {
            for (int i1 = 0; i1 < money[i].length; i1++) {
                everyMoney[i] += money[i][i1];
                sum += money[i][i1];
            }
        }
        for (int i = 0; i < everyMoney.length; i++) {
            System.out.println(everyMoney[i]);
        }
        System.out.println(sum);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值