题解 | 打印日期(法二)
打印日期
https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
//打印日期 法二:利用NextDay 函数 #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}; //是否是闰年 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 year, num; while (scanf("%d%d", &year, &num) != EOF) { int next = 1; //一年中第几天 int curmonth = 1, curday = 1; //从1.1开始 while (1) { if (next == num) { break; } NextDay(year, curmonth, curday); next++; } printf("%04d-%02d-%02d\n", year, curmonth, curday); } return 0; }
王道机试指南 文章被收录于专栏
这个专栏是参考王道机试指南中相关的练习题哦