回文日付
どう書く?org に出題されてたので考えてみました。コードは書いてません。
leading zero を許す場合
YYYYMMDD の MMDD を決めれば,回文になるという条件から YYYY が一意に決まります。
結果が存在する日付になるかということが問題になりそうですが,年はどんな並びでも許されるので MMDD = 0229 のとき(閏年でなければならない)以外は自明。2/29 のときは YYYY = 9220 となり,閏年なので問題なし。
ということで,すべての MMDD に対して YYYY が一意に存在して YYYYMMDD が回文日付になります。その総数は 366 通り。
leading zero を許さない場合
日付の末尾が 0 になる 10, 20, 30 が除かれるだけです。ただし 2/30 は存在しないので除かれるのは 3 * 12 - 1 = 35 日。総数は 366 - 35 = 331 となります。