测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A27705. 第几天(day)

填空题 中等

题目描述

第几天(day)

题目描述

给定一个日期,求这一天是当年的第几天。每年的元旦,1月1日,都是每年的第一天,但是每年的最后一天,12月31日,有可能是第365天,也有可能是第366天,因为闰年的二月是29天,平年的二月是28天。一月、三月、五月、七月、八月、十月、十二月都是31天,四月、六月、九月、十一月都是30天。能被4整除但不能被100整除,或者能被400整除的年份为闰年。

输入格式

一行,包含正整数,它们分别表示年、月、日。

输出格式

一个整数,为输入所代表的一天在当年的第几天。每年的元旦为一年中的第一天。

输入输出样列

输入样例1

2021 10 17

输出样例1

290

参考答案

#include <bits/stdc++.h> #define FOR(i, a, b) for(int i = a; i <= b; i ++ ) #define DOR(i, a, b) for(int i = b; i >= a; i -- ) using namespace std; typedef long long LL; typedef unsigned long long ULL; const int N = 20; int dat[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int y, m, d; int main () { cin >> y >> m >> d; if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) dat[2] ++; for (int i = 1; i <= 12; i ++ ) dat[i] += dat[i - 1]; cout << dat[m - 1] + d; return 0; }
上一题 下一题