←点个赞吧QwQ
分析
这题太简单了,闰年都没让你判,我也不多讲了
C++ 代码
#include<bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
map<int,int> Month; //每月的天数
int main(){
int n;
cin>>n;
Month[1]=31;
Month[2]=28;
Month[3]=31;
Month[4]=30;
Month[5]=31;
Month[6]=30;
Month[7]=31;
Month[8]=31;
Month[9]=30;
Month[10]=31;
Month[11]=30;
Month[12]=31;
while(n--){
int year,month,day;
cin>>year>>month>>day;
day++;
if(day>Month[month]) day=1,month++; //判断天数加1是否超出本月天数,超出month就+1,day变为1
if(month>12) month=1,year++; //判断月份是否超出12,超出year就+1,month变为1
printf("%d-",year); //一个一个输出,因为要判断个位数前面加0的问题
if(month>=10) printf("%d-",month);
else printf("0%d-",month);
if(day>=10) printf("%d\n",day);
else printf("0%d\n",day);
}
return 0;
}
优化后的
#include<bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
int Month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
int n;
cin>>n;
while(n--){
int year,month,day;
cin>>year>>month>>day;
day++;
if(day>Month[month]) day=1,month++;
if(month>12) month=1,year++;
printf("%d-%02d-%02d\n",year,month,day);
}
return 0;
}
好像这个输出,前置0可以是 %02d
啊是的,谢谢提醒hh