题解:P5716 【深基3.例9】月份天数
GoldenSTEVE7 · · 题解
题意简述
给定年份和月份,求这个月有多少天。
思路
我们用小学学过的 N 种方法都可以知道,
那我们可以使用一个数组,其下标对应月份,数值对应天数。在输出之前处理闰年的问题即可。
更详细的解释看下面的注释。
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[13];
signed main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int y, m; cin >> y >> m;
a[1] = a[3] = a[5] = a[7] = a[8] = a[10] = a[12] = 31; // 处理大月
a[4] = a[6] = a[9] = a[11] = 30; a[2] = 28; // 处理小月
if(y % 4 == 0 && y % 100 != 0) a[2] = 29;
if(y % 400 == 0) a[2] = 29;
// 处理闰年 2 月(四年一闰,百年不闰,四百年再闰)
cout << a[m]; // 输出
return 0;
}