• 【学习笔记】〖九度OJ〗题目1186:打印日期


    题目1186:打印日期

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:2549

    解决:918

    题目描述:

    给出年分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



    //本题利用Hash思想,将对应平闰年各月分天数存储,免去条件判断
    #include<iostream>
    #include<cstring>
     
    #include<stdio.h>
    using namespace std;
     
    int dofm[2][12] = {31, 28 ,31,30,31,30,31,31,30,31,30,31,
                        31, 29 ,31,30,31,30,31,31,30,31,30,31};
     
     
    int isR(int year)
    {
        int res = 0;
        if (year%400 == 0)
        {
            return 1;
        }
        if (year%4 == 0)
        {
            if (year%100 == 0)
            {
                return 0;
            }
            res = 1;
        }
        return res;
    }
     
    int main()
    {
         
        int year, day, i,j;
        while (cin >> year >> day)
        {
            j = isR(year);
            for (i=0; i<12; i++)
            {
                if (day > dofm[j][i])
                {
                    day -= dofm[j][i];
                }
                else
                    break;
     
            }
             
            printf("%04d-%02d-%02d
    ", year, i+1, day);
        }
     
        return 0;
    }




  • 相关阅读:
    List数组细解
    iOS之缓存
    Java_String的操作
    weak的理解
    Swift_单利
    Java 抽象类和接口
    Java 继承中的问题
    java 成员变量与局部变量
    纪中第十九天
    cin快读
  • 原文地址:https://www.cnblogs.com/ymjia/p/3590306.html
Copyright © 2020-2023  润新知