前言
早上,在上班的地铁上,刷朋友圈的时候,看到了这样一个日期:20211202
看着这个数字,脑子停顿了一下,这个数字不就是一个回文数么?
于是,心中顿时产生一个想法,日期回文数有多少个呢?
回文数
回文 是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如 "我为人人,人人为我" 等
在数学中也有这样一类数字有这样的特征,称为回文数(palindrome number)
回文数:正读倒读都一样的整数
想法
那从我出生到现在,会有多少个回文日期数呢?
于是,我打开电脑,敲下了以下代码:
语言:Swift
// 一天的秒数
let interval: TimeInterval = 86400
// 日期格式化
let formatter = DateFormatter()
formatter.dateFormat = "yyyyMMdd"
print("========== 日期回文数 ==========")
// 1970.1.1 ~ 2100.12.31 的日期总天数是:47846 天
for i in 0...47846 {
let date = Date.init(timeIntervalSince1970: Double(i)*interval)
let day = formatter.string(from: date)
print("day = ", day)
// 反转后,是否相等
if day == String(day.reversed()) {
print("day = \(day) 是回文日期")
}
}
print("========== 日期回文数 ==========")
程序打印结果:
day = 20011002 是回文日期 ✅
day = 20100102 是回文日期 ✅
day = 20111102 是回文日期 ✅
day = 20200202 是回文日期 ✅
day = 20211202 是回文日期 ✅
day = 20300302 是回文日期
day = 20400402 是回文日期
day = 20500502 是回文日期
day = 20600602 是回文日期
day = 20700702 是回文日期
day = 20800802 是回文日期
day = 20900902 是回文日期
这结果,还真是少!
一个世纪 100 年,只有 12 个日期回文数 😂
不算今天,还剩下 7 个
你~还能过几个呢?😂
我的小作品
欢迎体验我的作品之一:小编辑器-XCompiler
在线编辑器,包含多种语言~
App Store 搜索即可~