买飞机票
需求
机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
按照如下规则计算机票价格:旺季(5-18月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
逻辑
首先输入票价,舱位等级,月份,然后同时判断淡旺季和舱位级别,然后进行价格的计算,原价*折扣。
代码实现
public class MaiFeiJiPiao { static Scanner sc=new Scanner(System.in); public static void main(String[] args) { double price = 0; System.out.println("请输入月份:"); int a=sc.nextInt(); System.out.println("请输入是经济舱还是头等舱:"); String b=sc.next(); System.out.println("请输入机票原价:"); double c=sc.nextDouble(); price = getPrice(price, a, b, c); System.out.println(a+"月份"+b+"机票价格为"+price+"元"); } private static double getPrice(double price, int a, String b, double c) { if(a>=5&&a<=10&&b.equals("头等舱")){ price=c*0.9; }else if (a>=5&&a<=10&&b.equals("经济舱")){ price=c*0.85; }else if((a==11||a==12||(a>=1&&a<=4))&&b.equals("头等舱")){ price=c*0.7; }else if((a==11||a==12||(a>=1&&a<=4))&&b.equals("经济舱")){ price=c*0.65; }else{ System.out.println("输入错误!!!"); } return price; } }
抽奖
需求
一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1088,10880}五个奖金
请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。
打印效果如下:(随机顺序,不一定是下面的顺序)
888元的奖金被抽出
588元的奖金被抽出
10000元的奖金被抽出
1000元的奖金被抽出
2元的奖金被抽出
逻辑
先设置一个数组,将所有奖品加入其中,然后再设置一个数组存放每次随机抽取的奖品,抽取奖品使用random方法随机0~第一个数组长度(左闭右开区间)之间的一个数,然后判断相应位置的奖品是否已经存入第二个数组,若已经存入则重新抽取,若没有存入则抽取后存入到第二个数组中,直到奖品全部抽完。
代码实现
public class Choujiang { public static void main(String[] args) { int[] arr={2,588,888,1088,10880}; int[] ints = new int[arr.length]; for (int i=0;i<5;i++){ boolean a=true; int num=(int)(Math.random()*5); while (a){ for (int j=0;j<5;j++){ if (ints[j]==arr[num]){ num=(int)(Math.random()*5); a=true; break; }else{ a=false; } } if (a==false){ ints[i]=arr[num]; } } System.out.println(ints[i]+"元奖金被抽出"); } } }