洛谷P5707 【深基2.例12】上学迟到

题目描述

学校和 yyy 的家之间的距离为 ss 米,而 yyy 以 vv 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 1010 分钟的时间进行垃圾分类。

学校要求必须在上午 \textrm{8:00}8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。

输入格式

一行两个正整数 s,vs,v,分别代表路程和速度。

输出格式

输出一个 2424 小时制下的时间,代表 yyy 最晚的出发时间。

 

输出格式为 \texttt{HH:MM}HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 00。

输入输出样例

输入 #1
100 99
输出 #1
07:48

说明/提示

对于 100\%100% 的数据,1 \le s,v \le 10^41s,v104。

解题思路

先算出yyy上学路上需要的时间,注意小数的转换 ex:s=100 v=3 所需时间为 33.3  即需要 34min才能走完路程, 此时将8点钟换算成分钟,再减去路上垃圾分类的10分钟  
最后通过60进制得到对应的小时和分钟。
notice:提前一天时的时间转换为,24*60min+所要提前的时间;

代码示例

#include<iostream>
#include<math.h>
using namespace std;
int main() {
float s;
int v;
cin>>s>>v;
float time;
time = s/v;
int t;
t = int(time);
if (time!=int(time)) 
 t = int(time)+1;
t = 480 - t - 10>=0? 480-t-10:24*60+(480 -t -10);
int h = t / 60;
int min = t % 60;
if(h>=9)
cout<<h<<":";
else
cout<<"0"<<h<<":";
if(min>=9)
cout<<min;
else cout<<"0"<<min;
}

 

posted @ 2023-09-14 21:30  夜未央111  阅读(39)  评论(0编辑  收藏  举报