迟到问题C++标准库解法
查看原帖
迟到问题C++标准库解法
567847
yxpxa楼主2021/9/17 09:54

设 yyy 在 x 时间出发,走过距离 s ,速度 v, 路上浪费了 10 分钟,到达学校为 08:00 前, 8点转换为分钟数为 8 * 60 = 480分钟。则算术表达式为:

x + s/v + 10 <= 8 * 60

解得: x <= 470 - s/v

上式可以看出,当 s/v 大于 470 时,x 将小于 0,表示当天的时间不够了,此时需要加上一天的时间 60*24 分钟,也就是提前一天出发。

#include <iostream>
#include <string>
using namespace std;
string F(int x) {
	return (x < 10 ? "0" : "") + to_string(x);
}
int main() {
	int s, v, x;
	cin >> s >> v;
	x = 470 - s * 1.0 / v;
	while (x < 0)	x = x + 60 * 24;
	cout << F(x / 60) + ":" + F(x % 60);
	return 0;
}
2021/9/17 09:54
加载中...