题解 P5716 【【深基3.例9】月份天数】

· · 题解

分析一波~

首先“一月大,二月平···”那么1,3,5,7,8,10,12是大月(31天),而4,6,9,11是小月(30天),2月是平月

所以第二步要特判年是否为闰年(ps:闰年就是为了防止误差在2月加了一天,闰年要能被4整除却不能被100整除,或能被400整除)

第三步建一个月的数量的表,具体代码说

极简代码供上~

#include <stdio.h>
int main()
{
    int n,m;//一个年份n,一个月份m
    scanf("%d %d",&n,&m);//简单输入
    int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};/建表(此时二月是按照平年算)
    if(n%4==0&&n%100!=0||n%400==0)//特判闰年
    day[2]=29;//闰年2月29天
    printf("%d",day[m]);输出
    return 0;
}