B4233 [四川青少年 C++ 算法设计大赛 2024] 4-5 年级组第 4 题
欢迎报名洛谷网校,期待和大家一起进步!
本题考察分支结构。
我们需要计算出每种方案小 X 需要花费多少时间,再从中选择最小值。根据题意:
- 步行。所需时间是
n\div a 。 - 坐公交车。所需时间是
t+n\div b 。 - 骑共享单车。所需时间是
m\div a+(m+n)\div c 。
在编写代码的时候,由于时间都有可能是小数,因此需要使用 double 类型变量存储这些数值。但是由于 a,b,c 是整数,整数除以整数的结果是整数,因此需要将其强制转换为浮点数。参考代码:
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);
}