A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.
第一版:判断数字回文直接反转数字
def reverse(number):
r = 0
while number >0:
last_digit = number % 10
r = r * 10 + last_digit
number = number / 10
return r
def is_palindrome(number):
return reverse(number) == number
def run():
largest = 0
for i in range(100,1000):
for j in range(100,1000):
product = i * j
if is_palindrome(product) and product>largest:
largest = product
return largest
第二版:将数字转为字符串:通过 str[::-1] 反转字符串
def run2():
largest = 0
for i in range(100,1000):
for j in range(100,1000):
product = i * j
strProduct = str(product)
if strProduct == strProduct[::-1] and product > largest:
largest = product
return largest
第三版:一行python
def run3():
return max([x*y for x in range(100,1000) for y in range(100,1000) if str(x*y) == str(x*y)[::-1]])