?思路:
先计算的走路时间加上垃圾分类时间
int a = s / v + 10;
然后这道题的第1个坑来了,如果路程和时间不能整除的话,需要加一分钟,因为多出的那几秒也算,所以这边要加一个判定。
if (s % v != 0)
a++;
接下来就是计算小时和分钟
h = a / 60;
m = a % 60;
然后这道题的第2个坑来了,题目说提前的时间不会超过一天而且要用24小时的形式输出,因为上午8点必须到达,所以我们这边需要添加两个判定,一判定h有没有超过8个小时,二判定m有没有超过50分钟
if (h >= 8) {
if (m > 50)
printf("%d:0%d", 24 - h + 8 - 1, 60 - m);
else
printf("%d:%d", 24 - h + 8 - 1, 60 - m);
}
else {
if (m > 50)
printf("0%d:0%d", 8 - h - 1, 60 - m);
else
printf("0%d:%d", 8 - h - 1, 60 - m);
}
完整代码:
#include<stdio.h>
int main()
{
int s, v, h=0, m=0;
scanf("%d %d", &s, &v);
int a = s / v + 10;
if (s % v != 0)
a++;
h = a / 60;
m = a % 60;
if (h >= 8) {
if (m > 50)
printf("%d:0%d", 24 - h + 8 - 1, 60 - m);
else
printf("%d:%d", 24 - h + 8 - 1, 60 - m);
}
else {
if (m > 50)
printf("0%d:0%d", 8 - h - 1, 60 - m);
else
printf("0%d:%d", 8 - h - 1, 60 - m);
}
return 0;
}
如果拿走,请在评论区打个1。
如果有更优的代码,请在评论区私信发给我谢谢!