题解 | 日期累加
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include <iostream> #include <stdio.h> using namespace std; void NextDay(int& year, int& month, int& day) { //月份对应天数 int dayOfmonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //7.8月都是31天 bool isLeap; isLeap = year % 400 == 0 || year % 100 != 0 && year % 4 == 0; //是否是闰月 if (isLeap) { dayOfmonth[2] = 29; } ++day; if (day > dayOfmonth[month]) { day = 1; month++; } if (month > 12) { month = 1; year++; } } int main() { int m; scanf("%d", &m); int i, year, month, day, num; for (i = 0; i < m; ++i) { scanf("%d%d%d%d", &year, &month, &day, &num); int next = 0; //加的次数 while (1) { NextDay(year, month, day); next++; if (next == num) { break; } } printf("%04d-%02d-%02d\n", year, month, day); } } // 64 位输出请用 printf("%lld")
王道机试指南 文章被收录于专栏
这个专栏是参考王道机试指南中相关的练习题哦