題目
"有一天,我正在高速公路上開車,我偶然注意到我的里程錶。和大多數里程錶一樣,它只顯示6位數字的整數英里數。
所以,如果我的車開了300,000英里,我能夠看到的數字是:3-0-0-0-0-0。我當天看到的里程數非常有意思。我注意到後四位數字是迴文數;也就是說,正序讀和逆序讀是一樣的。例如,5-4-4-5就是迴文數。
所以我的里程數可能是3-1-5-4-4-5。一英里後,後五位數字變成了迴文數。例如,里程數可能變成了是3-6-5-4-5-6。又過了一英里後,6位數字的中間四位變成了迴文數。
你相信嗎?一英里後,所有的6位數字都變成了迴文數。那麼問題來了,當我第一次看到里程錶時,里程數是多少?"
編寫寫一個程序,測試
所有的6位數字
,然後輸出所有符合要求的結果
def palindrome(number, start, length):
str_number = str(number)
part_number = str_number[start:start + length] # 截取指定的英里數
return part_number == part_number[::-1]
def check_palindrome(i):
return ( # 加上括號後可以分行寫
palindrome(i, 2, 4) and # 後四位
palindrome(i + 1, 1, 5) and # 後五位
palindrome(i + 2, 1, 4) and # 中間四位
palindrome(i + 3, 0, 6) # 全部六位
)
if __name__ == '__main__':
for i in range(100000, 1000000):
if check_palindrome(i):
print(i)
不要走開
歡迎關注公衆號:趣享Eureka<分享電腦技巧,音樂,讀書筆記>