#include<stdio.h>
int main()
{
int s,v,k,d,sum=10;//s为路程,v为速度,sum为所用的总时间(目前为止垃圾分类的十分钟)
scanf("%d%d",&s,&v);//输入路程与速度
sum+=s/v;//路程除以速度即得时间,总时长还要加上路上的时间
if(s%v!=0)
sum++;//如果路程与时间没有整除,则所用时间再加一分钟(上取整)
k=sum/60;
d=sum-k*60;//路上用时即为k小时d分钟
if(sum<480)//所用总时长小于480分钟,即当天到达,此时k<8
{
if(d!=0)
{
if(d<51)
printf("0%d:%d",7-k,60-d);
else
printf("0%d:0%d",7-k,60-d);//当d<51时,60-d为两位数,否则60-d为一位数
}
else
printf("0%d:00",8-k);//若d=0即sum刚好被60整除,没有用到额外的一小时
}
else//需提前一天出发,此时k>=8
{
k-=8;//即此时显示对于前一天0点需提前多少个小时
if(k<14)//即23-k为两位数
{
if(d!=0)
{
if(d<51)
printf("%d:%d",23-k,60-d);
else
printf("%d:0%d",23-k,60-k);
}
else
printf("%d:00",24-k);
}
else//即23-k为一位数
{
if(d!=0)
{
if(d<51)
printf("0%d:%d",23-k,60-d);
else
printf("0%d:0%d",23-k,60-k);
}
else
if(k==14)//此时24-k为两位数
printf("%d:00",24-k);
else//即k>14
{
printf("0%d:00",24-k);
}
}
}
return 0;
}
仅提供一种思路,大概就是考虑周全的问题。一开始做的时候60分...也不知道错哪里了,然后现在重新再做一次(一边做一遍注释)就过了。希望能有所帮助~不要变成棕名噢(友情提示.jpg)