Nicn的刷题日常之获得月份天数

 

目录

1.题目描述 

描述

输入描述:

输出描述:

示例1

2.解题  


 

1.题目描述 

描述

KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。

输入描述:

多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。

输出描述:

针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。

示例1

输入:

2008 2

复制输出:

29

2.解题  

int main()

{

    int year = 0;

    int mouth = 0;

    while ((scanf("%d %d", &year, &mouth)) != EOF)

    {





        if (((year % 100 != 0) && (year % 4 == 0)) || (year % 400 == 0))

        {

            if (mouth == 2)

            {

                printf("29\n");

            }

            else if (mouth == 1 || mouth == 3 || mouth == 5 || mouth == 7 || mouth == 8 || mouth == 10 || mouth == 12)

            {

                printf("31\n");

            }

            else

            {

                printf("30\n");

            }

        }

        else

        {

            if (mouth == 2)

            {

                printf("28\n");

            }

            else if (mouth == 1 || mouth == 3 || mouth == 5 || mouth == 7 || mouth == 8 || mouth == 10 || mouth == 12)

            {

                printf("31\n");

            }

            else

            {

                printf("30\n");

            }

        }

    }

    return 0;

}

第二种解法:

#include 
int main()
{
    int y = 0;
    int m = 0;
    int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; 
    while(scanf("%d%d", &y, &m) != EOF)
    {
        int day = days[m-1];
        if((y%4==0 && y%100!=0) || (y%400==0))
        {
            if(m == 2)
                day += 1;
        }
        printf("%d\n", day);
    }
    return 0;
}

你可能感兴趣的:(算法,数据结构,leetcode,动态规划)