解答:
#include <cstdio>
using namespace std;
int month[13][2] = {
{0, 0},
{31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31}, {30, 30},
{31, 31}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}
};
bool isLeap(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int input_num;
scanf("%d", &input_num);
int y, m, d, gap;
while(input_num--) {
scanf("%d %d %d %d", &y, &m, &d, &gap);
while(gap--) {
d++;
if(d == month[m][isLeap(y)] + 1) { //如果當年是閏年,第二下標爲2,否則爲1
m++;
d = 1;
}
if(m == 13) {
y++;
m = 1;
}
}
printf("%d-%02d-%02d\n", y, m, d);
}
return 0;
}
坑:
- 沒有多組輸入,代碼接收多組輸入的話會提示“輸出超限”。