Я новичок в Python (и программирование), и я застрял в Проекте Эйлер 4. Проблема говорит:Project Euler 4 с питоном: Самый большой Palindrome продукт
«палиндромное число читается одинаково в обоих направлениях Самый большой палиндром, изготовленный из продукта двух двузначных чисел, составляет 9009 = 91 × 99.
Найти самый большой палиндром из продукта двух трехзначных чисел ».
Вот что я пришел так далеко:
ProductOfThree = []
ProductOfThreeSTR = []
PalindromicNumber = []
#This first for loop displays all the results possible from the product of two 3 digit Number
for k in range(100, 1000):
for j in range(k, 1000):
Result = k * j
ProductOfThree.append(Result)
#This second loop converts the list of number to a list of string
for i in ProductOfThree:
a = str(i)
ProductOfThreeSTR.append(a)
#The third loop compare the digit of each number of the list to find all the palindromic number of that list
for d in ProductOfThreeSTR:
if len(d) == 6:
if (d[0] == d[5]) and (d[1] == d[4]) and (d[2] == d[3]):
PalindromicNumber.append(d)
elif len(d) == 5:
if (d[0] == d[4]) and (d[1] == d[3]):
PalindromicNumber.append(d)
#And finally here the program display the largest number of the list, which contains only the palindromic numbers
Largest = PalindromicNumber[0]
for p in PalindromicNumber:
if Largest <= p:
Largest = p
print(Largest)
Программа отображает номер 99999. После повторного чтения программы я понял, что оператор if с len (d) == 5 бесполезен, потому что мы хотим отображать наибольшее число, а число с 6 цифрами всегда больше, чем число с пятью цифрами , После удаления этой части программы я получаю результат, который должен иметь (906609). Но мне все еще интересно, даже если мы пытаемся найти палиндромное число с 5 цифрами, обычно их следует игнорировать, когда мы будем отображать наибольшее количество списка, так почему он дает результат 99999?