题目大意
yyy 的学校要求早上 88 点前到达。学校到 yyy 的家一共有 s(s≤10000)s(s≤10000) 米,而 yyy 可以以 v(v≤10000)v(v≤10000) 米每分钟的速度匀速走到学校。此外在上学路上它还要额外花 1010 分钟时间进行垃圾分类。请问为了避免迟到 yyy 最晚什么时候出门?输出 HH:MM
的时间格式,不足两位时补零。由于路途遥远,yyy 可能不得不提前一天出发,不过不可能提前超过一天。
思路
题目说明了时间可能是前一天,但不超过前一天的 00 点,
我们可以用一个变量 minute
表示从前一天的 00 点到当前天的 88 点的分钟数,然后 minute
要减去路上的垃圾分类时间 1010 分钟,还要减去向上取整的走路时间,向上取整前要先将 ss 乘 1.01.0,再除以 vv,转换成 doubledouble 类型再取整,就是得数了。要注意,输出小时的时候要先除以 6060,取小时数,再 mod24mod24,因为可能出发时间再前一天。
代码
cpp#include <iostream> #include <iomanip> #include <cmath> using namespace std; int main(){ int s,v,minute; cin >> s >> v; minute=((24+8)*60)-(ceil(1.0*s/v)+10); cout << setfill('0') << setw(2) << (minute/60)%24 << ":" << setw(2) << minute%60 << endl; return 0; }标签:12,10000,深基,yyy,取整,P5707,include,minute,前一天 From: https://www.cnblogs.com/dollar/p/16589828.html