算法学习:模拟
题源:回文日期
题目:
下面我们对题目进行分析,首先涉及到日期,我们很敏感的考虑到日期的合法性,而日期的合法性中又分为普通日期和特殊日期(闰年二月)。
再结合这道题目,对8位数的日期进行判断是否为回文日期,所以这道题目需要考虑到日期的合法性。 因此我们首先判断是否为闰年,这部分代码也是喜闻乐见了。如下:
第二步对普通日期的合法性进行判断,代码如下
只有在月份为2时我们才会有针对闰年的判断,剩余的判断就是常识啦。
由于需要对8位数中的每一个数都进行判断是否合理,所以我们采取将8个数均提取出来再判断的方式,同时需要对8位数进行年月日对拆解。具体代码如下:
再看题目,只对普通的回文日期输出一次,而需进行判断的数的范围极大,所以我们设置一个标志数来控制输出。首先设置flag=false,当第一次输出回文值后flag变为true则不再输出回文值。代码如下