题目要求

给出年份 y 和一年中的第 d 天,算出第 d 天是几月几号。

输入格式

输入包含多组测试数据。

每组数据占一行,包含两个整数 y 和 d。

输出格式

每组数据输出一行一个结果,格式为 yyyy-mm-dd。

数据范围

输入最多包含 100 组数据, 1≤y≤3000, 1≤d≤366, 数据保证合法。

示例输入:

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

题目分析

模拟

代码实现

#include <iostream>
using namespace std;
const int N = 13;

int days[N] = {
    0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
inline bool isLeap(const int& y) {
    return (y
}

inline int getDay(const int& y, const int& m) {
    if (m == 2) return days[2] + isLeap(y);
    return days[m];
}
int y, t;
int main () {
    ios::sync_with_stdio(0);
    cin.tie(0);
    while(cin >> y >> t) {
        int m = 1, d = 1;
        --t;
        while(t) {
            --t;
            ++d;
            if (d > getDay(y,m)) {
                d = 1;
                ++m;
            }
        }
        printf("
    }
    return 0;
}
分类: Thought

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注

友情链接:Ctips' blog, Colza’s blog

站点状态:Status