题解 | #日期累加#

日期累加

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

#include <iostream>
using namespace std;
int GetMonthDay(int year, int month) {
    int monthDay[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))) {
        return 29;
    }
    return monthDay[month];
}
int main() {
    int n, y, m, d, sum;
    scanf("%d\n", &n);
    while (n--) { // 注意 while 处理多个 case
        scanf(" %d %d %d %d", &y, &m, &d, &sum);
        sum = sum + d;
        while (sum > GetMonthDay(y, m))
        {
            sum -= GetMonthDay(y, m);
            m++;
            if (m > 12)
            {
                y++;
                m = 1;    
             }
        }
        d = sum;
     printf("%04d-%02d-%02d\n", y, m, d);
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

研一开学九月份速成的Java,项目是苍穹外卖和黑马点评,算法基础不好,八股文较为熟练,想找份小厂日常实习,希望牛友们给点意见,蟹蟹啦
求offer的花生米很聪敏:三个月学了这么多?spring springmvc mybatis springboot jvm juc,还做完了两个项目,还熟悉八股,会点算法。卧槽,我该反思了。我暑假开始的,就做了外卖,spring springmvc boot 那些原理好多都忘了,还在刷 jvm 视频,八股和算法也没开始
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务