小韦老师@神犇营-my0095-骑车与走路

小韦老师@神犇营-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 

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;
}

你可能感兴趣的:(小韦同学@题解:神犇营)