题解 | #打印日期#

打印日期

http://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b

思路

记住前三段代码

AC代码

#include<iostream>
using namespace std;

const int M[13]={
    0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};

int is_leap(int y){
    if((y%4==0 && y%100 != 0) || y%400==0) return 1;
    return 0;
}

int get_days(int y,int m){
    if(m==2)  return M[m]+is_leap(y);
    return M[m];
}


int main(){
    int y,s;
    while(cin >> y >> s){
        int m=1,d=1;
        s--;
        while(s--){
            if(++d > get_days(y, m)){
                d=1;
                if(++m > 12){
                    m=1;
                    y++;
                }
            }
        }
        printf("%04d-%02d-%02d\n",y,m,d);
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务