代码的目的是以2101年1月1日为第一天,输入日期的次序来输出日期。以下为我的代码,语言为c++。
#include<iostream>
using namespace std;
int y=2101,m=1,d=1;
int x;
int f(int x){
if(x==1)return 0;
f(x-1);
if(m==12&&d==31){
y++;
m=1;
d=1;
return 0;
}
if(y%4!=0&&m==2&&d==28){
m=3;
d=1;
return 0;
}
if(y%4==0&&m==2&&d==29){
m=3;
d=1;
return 0;
}
if((m==1||m==3||m==5||m==7||m==8||m==10)&&d==31){
d=1;
m++;
return 0;
}
if((m==4||m==6||m==9||m==11)&&d==30){
d=1;
m++;
return 0;
}
d++;
return 0;
}
int main(){
cin>>x;
f(x);
cout<<y<<"年"<<m<<"月"<<d<<"日"<<endl;
y=2101,m=1,d=1;
main();
return 0;
}
这段代码运行合理,但随着x增大,我觉得它的运行压力越来越大,我试着输入了一个三位数好像直接爆栈了。希望有dalao能提出一些优化方案。感谢