1. 题目链接
https://www.luogu.com.cn/problem/P5707
【深基2.例12】上学迟到
2. 题目描述
学校和y的家距离s米,s以v的速度去学校,8点之前到,y出门前要打扫10分钟卫生,求s最晚的出门时间
输入:两个正整数路程s,速度v
输出:输出一个时间
3. 我的思考
这个题目看似简单,其实有一些坑:
- 最后求的小时变成负数
- 分钟60需要设置为0
4. 我提交的题解
/*
https://www.luogu.com.cn/problem/P5707 【深基2.例12】上学迟到题目描述:学校和y的家距离s米,s以v的速度去学校,8点之前到,y出门前要打扫10分钟卫生,求s最晚的出门时间
输入:两个正整数路程s,速度v
输出:输出一个时间
*/#include <math.h>
#include <iostream>
#include <iomanip>
using namespace std;int main()
{int s, v;cin >> s >> v;// 1. 去学校所需的时间,单位分钟int needMinute = s % v ? (int)(s / v) + 1 : (int)(s / v);// 2. 墨迹的总共时间needMinute += 10;// 3. 转换为时间的格式int hour = needMinute / 60;int minute = needMinute % 60;hour = 8 - hour - 1;// 防止小时变成负数if (hour < 0){hour = 24 + hour;}minute = 60 - minute;if (minute == 60)minute = 0;cout << setw(2);cout << setfill('0') << hour << ":" << setw(2) << setfill('0') << minute << endl;return 0;
}