0基础学java day07(算法训练、机票价格、评委打分、素数算法题)

  //1)需求:
  机票价格按照淡季旺季、头等舱、商务舱和经济舱收费,
  输入机票原价、月份和头等舱、商务舱或经济舱,
  其中旺季(5-10月)头等舱9折,商务舱85折,经济舱8折,
  淡季(11月到来年4月)头等舱7折,商务舱65折,经济舱6折,
  最终输出机票价格

package day07;

import java.util.Scanner;

/*
需求:
  机票价格按照淡季旺季、头等舱、商务舱和经济舱收费,
  输入机票原价、月份和头等舱、商务舱或经济舱,
  其中旺季(5-10月)头等舱9折,商务舱85折,经济舱8折,
  淡季(11月到来年4月)头等舱7折,商务舱65折,经济舱6折,
  最终输出机票价格
 */
public class CalAirPrice {
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入原价");
        double price=scan.nextDouble();
        System.out.println("请输入月份");
        int month=scan.nextInt();
        System.out.println("请输入舱型1、头等舱 2、商务舱 3、经济舱");
        int sort=scan.nextInt();

        double FinalPrice=discountPrice(price,month,sort);
        if(FinalPrice!=-1){
        System.out.println(FinalPrice);}
        else {
            System.out.println("输入错误");
        }

    }
    //判断是否合法并计算价格
    public static double discountPrice(double price,int month,int sort) {
        double Finalpric = 0.0;
        if (month < 0 || month > 12) {
            System.out.println("月份错误");
            return -1;
        }
        if (sort < 1 || sort > 3) {
            System.out.println("选择错误");
            return -1;
        }

        if (month >= 5 && month <= 10) {
            switch (sort) {
                case 1:
                    Finalpric = price * 0.9;
                    break;
                case 2:
                    Finalpric = price * 0.85;
                    break;
                case 3:
                    Finalpric = price * 0.8;
                    break;
            }
        } else {
            switch (sort) {
                case 1:
                    Finalpric = price * 0.7;
                    break;
                case 2:
                    Finalpric = price * 0.65;
                    break;
                case 3:
                    Finalpric = price * 0.6;
                    break;
            }

        }
        return Finalpric;
    }


}

 //2)需求:
<<主持人大赛>>有6名评委给选手打分,要求分数范围为0到100之间的整数。
选手的最后得分为:去掉最高分、最低分后的4个评委的平均分

package day07;
import java.util.Scanner;
/**
 * 需求:
 * <<主持人大赛>>有6名评委给选手打分,要求分数范围为0到100之间的整数。
 * 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分
 */
public class CalTotalAvg {
    //1、评委先评分
    //2、计算总分
    //3、计算平均分
    public static void main(String[] args) {
        double score[]=Score(6);

        double FinalScore=Sumscore(score);
        System.out.println("总成绩为"+FinalScore);

        double Avgscore=AvgScore(score);
        System.out.println("最后平均成绩为"+Avgscore);

    }
    //评分
    public  static  double [] Score(int l){
        double score[]=new double[l];
        Scanner scan=new Scanner(System.in);
        for (int i=0;i<score.length;i++){
            System.out.println("请第"+(i+1)+"位评委输入分数");
            score[i]=scan.nextDouble();
        }
        return score;
    }
   //计算总分数
    public static  double Sumscore(double score[]){
        double FinalScore=0.0;
        double max=score[0];
        double min=score[0];
        for(int i=0;i<score.length;i++) {
            if (max < score[i]){
                max=score[i];
            }
            if(min>score[i]){
                min=score[i];
            }
            FinalScore+=score[i];
        }
        FinalScore-=(max+min);
        return FinalScore;
    }

    //计算平均分数
    public static double AvgScore(double score[]){
          double Avgscore=Sumscore(score);
          Avgscore=Avgscore/(score.length-2);
          return Avgscore;
    }

}

//3)需求:----------常见面试题
*   找到2到100之间的所有素数(质数)
*   素数:除了1和它本身外,不能被其它任何自然数整数的

package day07;
/**
 * 需求:----------常见面试题
 *   找到2到100之间的所有素数(质数)
 *   素数:除了1和它本身外,不能被其它任何自然数整数的数
 */
public class PrimeNumber {
    public static void main(String[] args) {
         for(int i=2;i<=100;i++){
             boolean flag=true;
             for(int j=2;j<=i/2;j++) {
                 if (i % j == 0) {
                     flag = false;
                     break;
                 }
             }
                 if(flag){
                     System.out.print(i+"\t");


             }
         }

    }
}
/*
  i=2  j=2  2<=1     false  true  2
  i=3  j=2   2<=1.5  false  true 3
  i=4  j=2   2<=2    true   4%2==0  false break
  i=5  j=2   2<=2    true   5%2!=0  j=3  3!<=2 false  true 5
  i=6  j=2   2<=3    true   6%2==0  false break
  i=7  j=2   2<=3    true   7%2!=0  j=3  3!<=2  false true 7
  i=8  j=2   2<=4    true   8%2==0  false break;


 */

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值