B4233 [四川青少年 C++ 算法设计大赛 2024] 4-5 年级组第 4 题

· · 题解

欢迎报名洛谷网校,期待和大家一起进步!

本题考察分支结构。

我们需要计算出每种方案小 X 需要花费多少时间,再从中选择最小值。根据题意:

  1. 步行。所需时间是 n\div a
  2. 坐公交车。所需时间是 t+n\div b
  3. 骑共享单车。所需时间是 m\div a+(m+n)\div c

在编写代码的时候,由于时间都有可能是小数,因此需要使用 double 类型变量存储这些数值。但是由于 abc 是整数,整数除以整数的结果是整数,因此需要将其强制转换为浮点数。参考代码:

double walk_time = 1.0 * n / a;
double bus_time = t + 1.0 * n / b;
double bike_time = (1.0 * m / a) + 1.0 * (n + m) / c;

接着从中选择最小值输出即可。注意需要输出的是保留到小数点后两位的浮点数,需要使用 printf("%.2lf", ans) 这样的形式输出。

if (walk_time <= bus_time && walk_time <= bike_time) {
    cout << "MODE I" << endl;
    printf("%.2lf", walk_time);
}