Самый большой палиндромный продукт из трех цифр

Я написал следующий код на python для этой проблемы из Project Euler: Самый большой продукт палиндрома

y = 1000
x = 1000
while y >= 100:
    y-=1
    while x >= 100:
            x-=1
            product = y*x
            string = str(product)
            if str(product) == string[::-1]:
                    print(product)

Но это ничего не выводит в простое... в чем проблема?

2 ответа

Решение

Вы должны повторно инициализировать x внутри внешней петли:

while y >= 100:
    x = 1000
    ...

Вам нужно инициализировать х в цикле. Но это гораздо проще использовать для циклов, и полностью избежать проблемы инициализации.

for y in range(100, 1000):
    for x in range(100, 1000):
        prod = x * y
        if str(prod) == str(prod)[::-1]:
            print(prod)

## Для новичков... Это может вам помочь! ##

pro=[]
fin=[]
my_num=[]
x=[]
rev_num=[]

for a in range (100,1000):
    for b in range (100,1000):
        my_num.append(str(a*b))

l1= len(my_num)

for i in range(0,l1):
    rev_num.append(my_num[i][::-1])


for j in range(0,l1):
    if(my_num[j]==rev_num[j]):
        pro.append(int(my_num[j]))


pro.sort()
print(f'Largest palindrome product in the range is {pro[-1]}')
Другие вопросы по тегам