美团24届秋招笔试第一场第一题

目录

题目描述

输入描述:

输出描述:

示例1

本题需要特别注意

1.数据类型

2.注意判断数据是否符合现实

代码:


题目描述

小美的外卖订单

小美正在设计美团外卖的定价信息。已知外卖定价的规则如下:

1. 每道菜有折扣价和原价。折扣价不能超过原价。

2. 订单有满x元减y元的优惠。当购买的菜的价格总和不小于x元时,总价格可以减y元。“减”的价格不能超过“满”的价格。

3. 满减优惠和折扣价是互斥的,当且仅当每个菜都选择了原价才可以触发满减。

4. 系统会自动为客户计算最低价格的方案。

在设计定价时,原价、折扣价和满减的价格都必须是正实数。如果设计的定价发生问题,则会提示数据错误。
请使用等价划分法设计测试用例,来测试该系统的功能。

输入描述:

第一行输入一个正整数n,代表菜的总数。
接下来的n行,每行输入两个实数和,代表每道菜的原价是,折扣价是。
最后一行输入两个实数x和y,代表满x元可以减y元。

数据中所有实数的绝对值不超过1000。

输出描述:

如果数据有误,则输出一行字符串"error"。
否则输出一个小数,小数点后保留2位即可。该小数代表顾客购买了全部菜各一份时,订单的总价格。
示例1

输入例子:

2
10 5.5
10 6.5
15 3

输出例子:

12.00

例子说明:

虽然触发了满15元减3元,但使用折扣只需要花12元,低于使用满减的价格(20-3=17),因此最终系统会为客户推荐折扣价。

本题需要特别注意

1.数据类型

由于测试的数据可能比较大,所以读取每件菜原价和打折价格应该用double存储

2.注意判断数据是否符合现实

由于本题的数据具有现实意义,所以读取的每个数都应该为正数,因此每次读取都应该判断一下

代码:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int n = in.nextInt();
        if(n <= 0){
            System.out.println("error");
            return;
        }
        double[] a = new double[n];
        double[] b = new double[n];
        for(int i = 0;i< n;i++){
            a[i] = in.nextDouble();
            if(a[i] <= 0){
                System.out.println("error");
                return;
            }
            b[i] = in.nextDouble();
            if(b[i] <= 0){
                System.out.println("error");
                return;
            }
            
        }
    
        for(int i = 0 ;i < n;i++){
            if(a[i] < b[i]){
                System.out.println("error");
                return;
            }
        }
        int x = in.nextInt();
        int y = in.nextInt();
        if(x < y || x <= 0|| y<=0){
            System.out.println("error");
            return;
        }
        //触发满减
        double sum1 = 0;
        for(int i = 0;i < a.length;i++){
            sum1 += a[i];
        }
        if(sum1 > (double)x){
            sum1 = sum1 - (double)y;
        }
        double sum2 = 0;
        for(int i = 0;i<b.length;i++){
            sum2 += b[i];
        }
        // System.out.println(sum1);
        // System.out.println(sum2);
        double sum = sum1 < sum2?sum1:sum2;
        System.out.printf("%.2f",sum);

    }
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供南方电网秋招笔试的具体内容,因为我无法获取或提供特定公司的招聘信息。但是,我可以给你一些关于南方电网秋招笔试的一般性建议和常见型。 南方电网秋招笔试通常包括以下几个方面的内容: 1. 专业知识测试:涉及电力工程、电气工程、能源与动力工程等相关专业知识,包括电力系统、电力设备、电力工程管理等方面的知识。 2. 数学与逻辑推理:包括数学运算、概率统计、逻辑推理等方面的目。 3. 英语能力测试:主要考察英语阅读理解、词汇量和语法等方面的能力。 4. 综合素质测试:主要考察应聘者的综合素质,包括综合分析能力、创新思维、团队合作等方面。 在备考南方电网秋招笔试时,建议你注意以下几点: 1. 熟悉岗位要求:了解南方电网对应聘者的要求,明确自己所应聘的岗位所需的专业知识和技能。 2. 多做模拟:通过做一些模拟来熟悉型和考试时间,提高解速度和准确性。 3. 复习重点知识:重点复习与岗位相关的专业知识,包括电力系统、电力设备、电力工程管理等方面的知识。 4. 提高英语能力:加强英语阅读理解和词汇量的积累,可以通过阅读英文文章、做和听力练习等方式提高英语能力。 5. 注重综合素质:在备考过程中,注重培养自己的综合素质,包括综合分析能力、创新思维和团队合作等方面的能力。 希望以上建议对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值