1 条题解
-
0
G1002 [GESP202303 一级] 每月天数 题解
难度:1(GeekPi教学评定);知识点:条件判断、闰年判断、日期计算。
解题思路
先用月份表取得天数。只有二月需要判断闰年:能被400整除,或者能被4整除且不能被100整除。闰年二月在28天上加1。
为什么正确
除二月外,月份表就是答案;二月按完整的闰年规则决定28或29天。
易错点
1900年不是闰年,2000年是闰年;不要只用能否被4整除判断。
复杂度
时间:O(1);额外空间:O(1)。
参考代码(C++17)
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int y,m; cin>>y>>m; int d[]= { 0,31,28,31,30,31,30,31,31,30,31,30,31 } ; cout<<d[m]+(m==2&&(y%400==0||(y%4==0&&y%100!=0))); }来源与说明
本题解为配套教学整理,非官方题解。题库使用自行生成的测试数据,14个测试点。
- 1