解题思路:
1.简单穷举所有情况
2.用DFS函数按要求格式输出(徒有其名,简单的show功能啦)
[19/20]aa-bb-cc ———(注意标准输出要补零,eg: 2002-02-02)
3.处理重复:AABBCC相同、AACC相同、AABB相同;(其他按常规情况处理)
4.排序:升序
注意事项:注意19和20打头的区别,并排序筛选重复年份;
参考代码:
#include <iostream>//此题注意重复问题 using namespace std; int data[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int DFS(int aa,int bb,int cc,int year)//以年月日输出 { if(aa>=0&&aa<=99)//第一元素年份合法 { if(year%100!=0&&year%4==0||year%400==0) data[1]=29;//闰年处理 else data[1]=28; if(bb>=1&&bb<=12&&cc>=1&&cc<=data[bb-1])//第二元素月份、第三元素天数合法 { if(year>=2000&&year<=2059)//20世纪的年份 { printf("20%02d-%02d-%02d\n",aa,bb,cc); } else { printf("19%02d-%02d-%02d\n",aa,bb,cc); } } } } int main() { int AA,BB,CC,Y1,Y2; scanf("%d/%d/%d",&AA,&BB,&CC);//C语言格式化输入 //year有 CC AA,month有 BB AA,day有 CC BB AA if(AA>=60&&AA<=99)//AA产生的year1 { Y1=19*100+AA; } else { Y1=20*100+AA; } if(CC>=60&&CC<=99)//CC产生的year2 { Y2=19*100+CC; } else { Y2=20*100+CC; } if(AA==BB&&BB==CC)// AA,BB,CC 相同 { DFS(AA,BB,CC,Y1); return 0; } if(AA==BB&&BB!=CC)// AA,BB 相同 { if(Y1>Y2) { DFS(CC,AA,BB,Y2); DFS(AA,BB,CC,Y1); } else { DFS(AA,BB,CC,Y1); DFS(CC,AA,BB,Y2); } return 0; } //BB==CC是正常的输出 if(AA==CC&&AA!=BB)// AA,CC 相同 { if(AA>BB) { DFS(AA,BB,CC,Y1); DFS(CC,AA,AA,Y2); } else { DFS(CC,AA,AA,Y2); DFS(AA,BB,CC,Y1); } return 0; } if(Y1<Y2)//如果AA作为年份最小 { DFS(AA,BB,CC,Y1); if(BB>AA) { DFS(CC,AA,BB,Y2); DFS(CC,BB,AA,Y2); } else { DFS(CC,BB,AA,Y2); DFS(CC,AA,BB,Y2); } } else//如果CC作为年份最小 { if(BB>AA) { DFS(CC,AA,BB,Y2); DFS(CC,BB,AA,Y2); } else { DFS(CC,BB,AA,Y2); DFS(CC,AA,BB,Y2); } DFS(AA,BB,CC,Y1); } return 0; }
0.0分
0 人评分
高精度加法 (C++代码)(大数加法)浏览:1008 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:575 |
A+B for Input-Output Practice (VII) (C++代码)浏览:643 |
【明明的随机数】 (C++代码)浏览:834 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:626 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:548 |
【明明的随机数】 (C语言代码)浏览:845 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:821 |
a+b浏览:452 |
简单的a+b (C语言代码)浏览:542 |