4013 - 这个月份有多少天呢?

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

翔翔很好奇一个月有多少天,他发现2016年10月有31天,2月有29天,3月有31天,4月有30天。他就想是不是每个月份的天数就是这3个数呢。他看了看妈妈手机的万年历,发现2015年的2月份有28天。为啥呢,后来他发现2016年是闰年,2015年不是闰年。现在请你编写一个程序,帮他算算x年y月有多少天?(请用pascal语言编写)

题目输入

输入年份x和月份y,已知x和y都是自然数,并且 0<=x<=10000,   1<=y<=12  .

测试数据有多组,处理到输入结束。

题目输出

输出天数,每个输出占一行

输入/输出样例

输入格式

2000 2
2000 3
2016 5
2015 2

输出格式

29
31
31
28

C++解答

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    int year,month;
    while(scanf("%d%d",&year,&month)==2)
    {
        switch (month)
        {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                cout<<31<<endl;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                cout<<30<<endl;
                break;
            default:
                //2月
                if( (year%100 != 0  && year%4 == 0) || (year%400 == 0) )
                {
                    //如果是闰年,2月29天
                    cout<<29<<endl;
                }
                else
                {
                    //如果是平年,2月28天
                    cout<<28<<endl;
                }
                break;
        }
    }
}