✍个人博客:https://blog.youkuaiyun.com/Newin2020?spm=1011.2415.3001.5343
📚专栏地址:蓝桥杯题解集合
📝原题地址:时间显示
📣专栏定位:为想参加蓝桥杯的小伙伴整理常考算法题解,祝大家都能取得理想成绩!
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
问题描述
思路
这道题我们直接不断的除余即可,因为给的是毫秒数,所以要先转换成秒数。并且可以知道,最终显示出来的时间中,秒数一定在 0 到 60 之间,分数同理,时数一定在 0 到 24 之间,故我们可以先去计算秒数,再去计算分数,最后再计算时数。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
long long int n;
cin >> n;
n /= 1000; //转换成秒数
int s = n % 60; //获得秒数
n /= 60;
int m = n % 60; //获得分数
n /= 60;
int h = n % 24; //获得时数
cout << setw(2) << setfill('0') << h << ":";
cout << setw(2) << setfill('0') << m << ":";
cout << setw(2) << setfill('0') << s;
}