求几天后是几月几号1022
题目描述:
已知 2007 年 10 月 10 日,请求出 n 天后是几月几号
输入描述:
多组输入,每组输入为 1 行,为一个正整数 n (1 <= n <= 2000)
输出描述:
对于每组输入,输出格式为 yyyy-mm-dd,输出的值为 n 天后的日期
样例输入:
1
2
样例输出:
2007-10-11
2007-10-12
可以一天一天的推算,这个算法需要记忆,
注意最后的日期格式的输出
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int n; 5 while(cin>>n){ 6 int year=2007; 7 int month=10; 8 int day=10; 9 for(int i=1;i<=n;i++){ 10 day=day+1; 11 switch(month){ 12 case 1: 13 case 3: 14 case 5: 15 case 7: 16 case 8: 17 case 10: 18 case 12: 19 if(day==32){ 20 month=month+1; 21 day=1; 22 } 23 if(month==13){ 24 year=year+1; 25 month=1; 26 }break; 27 case 2: 28 if((year%4==0&&year%100!=0)||year%400==0){ 29 if(day==30){ 30 month=month+1; 31 day=1; 32 } 33 } 34 else{ 35 if(day==29){ 36 month=month+1; 37 day=1; 38 } 39 }break; 40 default: 41 if(day==31){ 42 month=month+1; 43 day=1; 44 } 45 if(month==13){ 46 year=year+1; 47 month=1; 48 }break; 49 } 50 } 51 if(month<10&&day<10){ 52 cout<<year<<"-"<<0<<month<<"-"<<0<<day<<endl; 53 } 54 else if(month<10&&day>=10){ 55 cout<<year<<"-"<<0<<month<<"-"<<day<<endl; 56 } 57 else if(month>=10&&day<10){ 58 cout<<year<<"-"<<month<<"-"<<0<<day<<endl; 59 } 60 else{ 61 cout<<year<<"-"<<month<<"-"<<day<<endl; 62 } 63 } 64 return 0; 65 }
转载请标明出处