三位数的最大回文积

问题描述 投票:1回答:3

我从Euler项目用python写了以下代码:Largest palindrome product

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)

但是在空闲状态下什么也不输出...是什么问题?

python string while-loop palindrome
3个回答
2
投票

您需要在外循环内重新初始化x

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

2
投票

您需要在循环中初始化x。但是使用循环要容易得多,并且可以完全避免初始化问题。

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

0
投票

##对于初学者...这可能对您有帮助! ##

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]}')
© www.soinside.com 2019 - 2024. All rights reserved.