题解 | #打印日期#

打印日期

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

#include <iostream>
using namespace std;

int main() {
    int year, day_;

    while (cin >> year >> day_) { // 注意 while 处理多个 case
        int mon =1;
        int day =1;
        int mon_day[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
        bool isLeap = year%400==0 || year%4==0 && year%100!=0;
        if (isLeap) {mon_day[2] = 29;}

        for(int i=0; i<day_-1;++i){
            ++day;
            if(day>mon_day[mon]){
                day = 1;
                mon+=1;
            
            if(mon>12){
                mon=1;
                year+=1;
            }}
        }

        printf("%04d-%02d-%02d\n",year,mon,day);

    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

09-24 17:57
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-08 18:20
职场水母:这题思路是什么,我目前想的一个暴力方法就是先把这个链表遍历一遍,用哈希表存储出现次数,然后再根据哈希表来一个一个删除节点,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务