小明 的学校要求早上 8 点前到达。学校到 小明的家一共有 s(s\le 10000)s(s≤10000) 米,而 小明可以以 v(v<10000)v(v<10000) 米每分钟的速度匀速走到学校。此外在上学路上它还要额外花 10 分钟时间进行垃圾分类。请问为了避免迟到小明 最晚什么时候出门?输出 HH:MM 的时间格式,不足两位时补零。由于路途遥远, 小明 可能不得不提前一天出发,不过不可能提前超过一天。
输入格式
两个正整数 s,v,意思已经在题目中给定。
输出格式
hh:mm 表示最晚离开家的时间(时:分,必须输出两位,不足两位前面补0)
输入输出样例
输入 #1复制
100 99
输出 #1复制
07:48
#include<bits/stdc++.h>
using namespace std;
int main()
{
int s,v,t;
cin>>s>>v;
if(s%v==0) t=s/v+10;
else t=s/v+1+10;
if(t<8*60) cout<<"0"<<(8*60-t)/60<<":"<<(8*60-t)%60<<endl;//8小时以内的
if(8*60-t<0) //超过8小时的
{
if((t-8*60)/60/10) cout<<23-(t-8*60)/60<<":";//23:00
else cout<<"0"<<(t-8*60)/60<<":";//09:00
if((t-8*60)%60/10) cout<<60-(t-8*60)%60<<endl;//"00";
else cout<<"0"<<60-(t-8*60)%60<<endl;
}
return 0;
}
供参考:
#include <stdio.h>
#include <math.h>
int main()
{
int s, v, time;
scanf("%d%d", &s, &v);
time = ceil(s * 1.0 / v) + 10;//向上取整
if (time <= 480) {
time = 480 - time;
}
else {
time = (8 + 24) * 60 - time;
}
printf("%02d:%02d", time / 60, time % 60);
return 0;
}