Problem 4 Largest palindrome product

来源:互联网 发布:敷面膜知乎 编辑:程序博客网 时间:2024/06/06 01:52

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 = 0while number >0:last_digit = number % 10r = r * 10 + last_digitnumber = number / 10return rdef is_palindrome(number):return reverse(number) == numberdef run():largest = 0for i in range(100,1000):for j in range(100,1000):product = i * jif is_palindrome(product) and product>largest:largest = productreturn largest

第二版:将数字转为字符串:通过 str[::-1] 反转字符串

def run2():largest = 0for i in range(100,1000):for j in range(100,1000):product = i * jstrProduct = str(product)if strProduct == strProduct[::-1] and product > largest:largest = productreturn 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]])


原创粉丝点击