题解 | #日期累加#
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include <iostream>
using namespace std;
int months[2][13]=
{
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
int y,m,d,ad,index,n;
int main() {
scanf("%d",&n);
while(0<n--)
{
scanf("%d %d %d %d",&y,&m,&d,&ad);
index=(y%400==0)||((y%4==0)&&(y%100!=0));
while(0<ad--)
{
if(d+1<=months[index][m])
++d;
else
{
if(m<12)
{++m;d=1;}
else
{
++y;m=d=1;
index=(y%400==0)||((y%4==0)&&(y%100!=0));
}
}
}
printf("%d-%02d-%02d\n",y,m,d);
}
}
// 64 位输出请用 printf("%lld")
查看10道真题和解析