蓝桥杯day1-时间问题

时间转换

时间显示(蓝桥杯C/C++2021B组省赛)
在这里插入图片描述

代码思路

只需要利用取余运算即可,我们假设题目输入为n毫秒
1.首先将 ms 转化为s,1s=1000ms 所以开始先除以 1000,n=n/1000。

2.转化成秒之后,先需要对一天有多少秒进行取余,这样剩下的时间肯定不到一天才能进行时间计算,也就是mod 86400。

3.对一天有多少秒取余后,我们先算还剩下多少小时也就是n/3600,然后再 mod 3600 剩下的秒数计算分钟

4.取余后算一下还有多少分钟也就是 n/60,最后再 mod 60输出还剩下多少秒。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;//因为毫秒数太长用longlong类型表示,把longlong类型 用ll来代替

int main(){
	int h,m,s;
	ll n;//毫秒数 
	cin>>n;
	n=n/1000%86400;// 把毫秒换成秒/1000,对一天的秒数(86400)取余,锁定到除不尽的最后一天  
	h=n/3600;//60(分钟)*60(秒),求小时
	n=n%3600;//去掉小时
	m=n/60;//求分钟
	s=n%60;//求秒数
	printf("%02d:%02d:%02d",h,m,s);
	return 0; 
	 
} 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值