P5707
# P5707 上学迟到题 (时间运算问题)
问题描述:
yyy 的学校要求早上 8 点前到达。学校到 yyy 的家一共有 米,而 yyy 可以以 米每分钟的速度匀速走到学校。此外在上学路上它还要额外花 10 分钟时间进行垃圾分类。请问为了避免迟到 yyy 最晚什么时候出门?输出 HH:MM
的时间格式,不足两位时补零。由于路途遥远, yyy 可能不得不提前一天出发,不过不可能提前超过一天。
题目bug:
不知道踩点到校算不算, 如果是非踩点到学校必须提前一分钟
怎么个不超过一天法? 是早上八点倒退24小时还是倒退到前一天的0点?
参考代码,仍需改进
#include<cstdio>
#include<iostream>
int main()
{
int S;//家到学校的距离
int V;//行走的速度
scanf("%d%d",&S,&V);
int t;
if(S%V==0)//因为后面是从07:59开始的,所以这里的时间少一分钟
{
t=S/V;
t+=9;//垃圾分类的时间
}
else
{
t=S/V;//时间如果不能被速度整除,就要提前一分钟出发
t+=10;//垃圾分类的时间
}
int H;//保存出发的小时,分钟
int M;
H=7;
M=59;
while(t!=0)
{
if(M!=0)
{
M--;
}
else
{
if(H!=0)
{
H--;
M=59;
}
else
{
H=23;
M=59;
}
}
t--;
}
int h1,h2;//分开保存小时,分钟的十位,个位
int m1,m2;
h1=H/10;
h2=H-(10*(H/10));
m1=M/10;
m2=M-(10*(M/10));
printf("%d%d:%d%d",h1,h2,m1,m2);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
在线编辑 (opens new window)
最近编辑时间: 2024/01/25 20:50:42