练习题——【学习补档】计算日期到天数转换

问题描述

根据输入的日期,计算是这一年的第几天。

保证年份为4位数且日期合法。

进阶:时间复杂度:O(n) ,

空间复杂度:O(1)

输入描述:

输入一行,每行空格分割,分别是年,月,日

输出描述:

输出是这一年的第几天
示例1

输入:

2012 12 31

输出:

366
示例2

输入:

1982 3 4

输出:

63

问题分析

该问题就是数天数。😁

解决方案

我们只需要算出输入的日期距年初总共多少天即可。

代码

c 复制代码
#include <iostream>
using namespace std;

int GetMonthDay(int year, int month)
{
	const static int day_arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
	if (month == 2
		&& (year % 4 == 0 && year % 100 != 0 || (year % 400 == 0)))
	{
		return 29;
	}
	return day_arr[month];
}

int main()
{
	int year, month, day;
	cin >> year >> month >> day;
	while (month != 1)
	{
		day += GetMonthDay(year, month - 1);
		month--;
	}
	cout << day;
}
相关推荐
焊锡与代码齐飞4 小时前
嵌入式第三十五课!!Linux下的网络编程
linux·运维·服务器·开发语言·网络·学习·算法
firshman_start5 小时前
文件包含的学习笔记
笔记·学习
月盈缺6 小时前
学习嵌入式的第二十四天——数据结构——队列和树
数据结构·学习
rainy雨7 小时前
学习方法①
学习
啊我不会诶8 小时前
CF每日4题(1500-1700)
c++·学习·算法
.鸣8 小时前
Java学习笔记:IDEA简单使用技巧
java·学习
shuououo9 小时前
集成算法学习笔记
笔记·学习·算法
helloyaren12 小时前
Docker Desktop里搭建RabbitMq 4.1.3集群的保姆级教程
学习·rabbitmq·集群
艾莉丝努力练剑13 小时前
【C语言16天强化训练】从基础入门到进阶:Day 6
c语言·数据结构·学习·算法
Insist75314 小时前
k8s----学习站点搭建
学习