小韦老师@神犇营-my0095-骑车与走路
题目:
描述
在码猿星球的校园里,没有自行车,上课办事会很不方便。但实际上。并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并车上自行车的时间为 27 秒;停车锁车的时间为 23 秒;步行每秒行走 1.2 米,骑车每秒行走 3.0 米。请判断走不同的距离去办事,是骑车快还是走路快。如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。
输入
输入一行,包含一个整数(<200),表示一次办事要行走的距离, 单位为米。
输出
输出一行,如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。
输入样例1
120
输出样例1
Bike
题解:
思路:
整体思路:
先算出走路所花时间,骑车所花时间,比较这两个时间,选择相应的出行方案。
具体步骤:
1.定义 3 个 int 型的变量,分别代表距离,走路所花时间,骑车所花时间,并
输入距离:
int dis; // 距离
int time1; // 走路所花时间
int time2; // 骑车所花时间
cin >> dis; // 输入距离
2.计算走路所花:
// 走路所花时间 = 距离 ÷走路的速度,再向上取整
// 时间 = (距离 / 1.2) 向上取整(若是 1.1 秒,就算作 2 秒)
time1 = ceil(dis / 1.2);
3.计算骑车所花时间:
// 骑车所花时间 = (距离 ÷骑车的速度)(向上取整) + 开锁时间 + 锁车时间
// 骑车所花时间 = (距离 / 3.0)(向上取整) + 27 + 23
time2 = ceil(dis / 3.0) + 27 + 23;
4.若走路所花时间小于骑车所花时间,则输出 walk;若骑车所花时间小于走路所花时
间,则输出 Bike;若两者时间一样多,则输出 ALL。
注意:
ceil 是向上取整函数。
完整代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int dis; // 距离
int time1; // 走路所花时间
int time2; // 骑车所花时间
cin >> dis;
// 走路所花时间 = 距离 ÷走路的速度,再向上取整
// 时间 = (距离 / 1.2) 向上取整(若是 1.1 秒,就算作 2 秒)
time1 = ceil(dis / 1.2);
// 骑车所花时间 = (距离 ÷骑车的速度)(向上取整) + 开锁时间 + 锁车时间
// 骑车所花时间 = (距离 / 3.0)(向上取整) + 27 + 23
time2 = ceil(dis / 3.0) + 27 + 23;
// 若走路所花时间小于骑车所花时间,则输出 walk
// 若骑车所花时间小于走路所花时间,则输出 Bike
// 若两者时间一样多,则输出 ALL
if (time1 < time2) cout << "Walk";
else if (time1 == time2) cout << "All";
else cout << "Bike";
return 0;
}