• 题目1186:打印日期


    题目1186:打印日期

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:10237

    解决:3498

    题目描述:

    给出年分m和一年中的第n天,算出第n天是几月几号。

    输入:

    输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。

    输出:

    可能有多组测试数据,对于每组数据,
    按 yyyy-mm-dd的格式将输入中对应的日期打印出来。

    样例输入:
    2000 3
    2000 31
    2000 40
    2000 60
    2000 61
    2001 60
    样例输出:
    2000-01-03
    2000-01-31
    2000-02-09
    2000-02-29
    2000-03-01
    2001-03-01
    来源:
    2003-2005年华中科技大学计算机研究生机试真题
    答疑:
    解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7909-1-1.html
    就是先判断一下是否是润年,用一个数组保存每个月的天数,闰年二月为29天,平年二月为28天
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<queue>
    #define maxn 105
    using namespace std;
    int main()
    {
        int n,m;
        while(~scanf("%d%d",&n,&m))
        {
            int flag=0;
            int a[12];
            if((n%4==0&&n%100!=0)||n%400==0)//闰年的判断
                flag = 1;
            if(flag)
            {
                a[0]=31,a[1]=29,a[2]=31,a[3]=30,a[4]=31,a[5]=30,a[6]=31,a[7]=31,
                a[8]=30,a[9]=31,a[10]=30,a[11]=31;
            }
            else
            {
                a[0]=31,a[1]=28,a[2]=31,a[3]=30,a[4]=31,a[5]=30,a[6]=31,a[7]=31,
                a[8]=30,a[9]=31,a[10]=30,a[11]=31;
            }
            int num1,num2,sum=0;
            for(int i=0;i<12;i++)
            {
                sum = sum + a[i];
                if(m<=sum)
                {
                    num1 = i+1;
                    if(m==sum)
                       num2 = a[i];
                    else num2 = m - (sum - a[i]);
                    break;
                }
            }
            printf("%04d-%02d-%02d
    ",n,num1,num2);//注意这种输出格式,前导可为0
        }
        return 0;
    }
    彼时当年少,莫负好时光。
  • 相关阅读:
    EasyUI tab
    CC和他的AE86
    Spreading the Wealth UVA
    Ultra-QuickSort POJ
    区间完全覆盖问题(贪心)
    Mod Tree HDU
    Snakes and Ladders LightOJ
    There is no SSR CSU
    X问题 HDU
    斐波那契数列
  • 原文地址:https://www.cnblogs.com/l609929321/p/6606224.html
Copyright © 2020-2023  润新知