202512-小杨的爱心快递

202512-小杨的爱心快递

GESP C++ 2025年12月,一级真题第一题,考察循环语句应用,涉及到基础语句,相对比较简单。题目难度⭐☆☆☆☆。

第一题,小杨的爱心快递

题目要求

题目描述

小杨的爱心快递


题目分析

1. 核心逻辑

本题要求在两种不同的计费方式中选择最便宜的一种。这考察了基本的变量定义、条件判断(if-else)以及格式化输出。

2. 计算步骤

  • 方式一(按体积计费):运费 = 体积 V×0.5V \times 0.5
  • 方式二(按重量计费)
    • 如果重量 G<300G < 300 克,费用为 MM 元;
    • 如果重量 G300G \ge 300 克,费用为 NN 元。
  • 最终结果:通过比较,取上述两者的最小值

3. 注意事项

  • 数据类型:由于涉及 0.50.5 倍率和保留一位小数,变量应使用浮点数类型(doublefloat)。
  • 输出格式:题目要求保留一位小数。在 C++ 中可以使用 printf("%.1f\n", result); 或结合 coutfixedsetprecision(1)

示例代码

#include <cstdio>
#include <iostream>

/**
 * GESP 2025年12月 一级编程题 T1: 小杨的爱心快递
 *
 * 题目核心:
 * 1. 体积计费:运费 = 0.5 * 体积 V
 * 2. 重量计费:
 *    - 重量 G < 300 克,运费为 M
 *    - 重量 G >= 300 克,运费为 N
 * 3. 最终运费:取以上两种计费方式中价格较低的一个
 */

int main() {
    double v, g, m, n;

    // 输入四行,分别是 V, G, M, N
    std::cin >> v >> g >> m >> n;
    // 计算按体积计费的费用
    double price_v = v * 0.5;

    // 计算按重量计费的费用
    double price_g;
    if (g < 300.0) {
        price_g = m;
    } else {
        price_g = n;
    }

    // 最终运费取两者中的最小值
    double result = (price_v < price_g) ? price_v : price_g;

    // 输出结果,保留一位小数
    printf("%.1f\n", result);

    return 0;
}

本文由coderli.com原创,按照CC BY-NC-SA 4.0 进行授权

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

luogu-”系列题目可在 洛谷题库 在线评测。

bcqm-”系列题目可在 编程启蒙题库 在线评测。

GESP/CSP认证交流QQ群: 688906745

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
最后更新于