蓝桥杯每日一题2023.10.2

时间显示 - 蓝桥云课 (lanqiao.cn)

题目描述

题目分析

输入为毫秒,故我们可以先将毫秒转化为秒,由于只需要输出时分,我们只需要将天数去除即可,可以在这里多训练一次天数判断

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int m[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool is_ren(int n)
{
	if((n % 100 != 0 && n % 4 == 0) || n % 400 == 0)return true;
	return false;
}
int main()
{
	long long x; 
	cin >> x;
	x /= 1000;
	//一天有24 * 60 * 60 = 86400 秒 
	bool flag = 0;
	for(int i = 1970; ; i ++)
	{
		if(is_ren(i))m[2] = 29;
		else m[2] = 28;
		for(int j = 1; j <= 12; j ++)
		{
			for(int k = 1; k <= m[j]; k ++)
			{
				if(x >= 86400)
				{
					k ++;
					x -= 86400;	
				} 
				else
				{
					flag = 1;
					break;
				}
			}
			if(flag)break;
		}
		if(flag)break;
	}
	int a = x / 3600;
	int b = x % 3600 / 60;
	int c = x % 60;
	printf("%02d:%02d:%02d", a, b, c);
	return 0;
}

但显然没必要,可以这样

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long x; 
	cin >> x;
	x /= 1000;
	//一天有24 * 60 * 60 = 86400 秒 
	while(x >= 86400)x -= 86400;
	int a = x / 3600;
	int b = x % 3600 / 60;
	int c = x % 60;
	printf("%02d:%02d:%02d", a, b, c);
	return 0;
}
相关推荐
LYFlied9 小时前
【每日算法】LeetCode 46. 全排列
前端·算法·leetcode·面试·职场和发展
LYFlied10 小时前
【每日算法】131. 分割回文串
前端·数据结构·算法·leetcode·面试·职场和发展
LYFlied12 小时前
【每日算法】LeetCode 78. 子集
数据结构·算法·leetcode·面试·职场和发展
LinHenrY122712 小时前
初识C语言(编译和链接)
c语言·开发语言·蓝桥杯
_OP_CHEN12 小时前
【算法基础篇】(三十五)图论基础之最小生成树:从原理到实战,彻底吃透 Prim 与 Kruskal 算法
算法·蓝桥杯·图论·最小生成树·kruskal算法·prim算法·acm/icpc
LYFlied12 小时前
【算法解题模板】-【回溯】----“试错式”问题解决利器
前端·数据结构·算法·leetcode·面试·职场和发展
资深web全栈开发14 小时前
LeetCode 3652: 按策略买卖股票的最佳时机
算法·leetcode·职场和发展
渡过晚枫14 小时前
[蓝桥杯/java/算法]攻击次数
java·算法·蓝桥杯
LYFlied15 小时前
【每日算法】LeetCode 79. 单词搜索
前端·算法·leetcode·面试·职场和发展
User_芊芊君子15 小时前
【LeetCode经典题解】:二叉树转字符串递归解法的核心逻辑与代码解剖
算法·leetcode·职场和发展