定位最大的三位数产品,这也是一个平原

2024-09-27 09:36:07 发布

您现在位置:Python中文网/ 问答频道 /正文

def reverseInteger(x):
    x_string = str(x)                           
    x_list = list(x_string)                     
    x_reversedlist = reversed(x_list)          
    x_reversedstring = "".join(x_reversedlist)  
    x_reversed = int(x_reversedstring)          
    return x_reversed

def paliproduct(i1, i2):
    while i1 < 1000 and i2 < 1000:
            product = i1 * i2
            i1 += 1
            i2 += 1
            if product == reverseInteger(product):
                return product

print(paliproduct(100, 100))

我正在使用Python(这是显而易见的)。。。我的问题是,为什么炮弹没有尝试所有可能的i1到i2(100-999)的值,并在进行了一轮100和100后破裂


Tags: stringreturndefproductlistintjoinstr
1条回答
网友
1楼 · 发布于 2024-09-27 09:36:07

它一找到回文就返回,因为您使用return告诉它:

if product == reverseInteger(product):
    return product

如果要查找所有回文,需要修改paliproduct函数的工作方式:

def paliproduct(i1, i2):
    palindromes = []
    while i1 < 1000 and i2 < 1000:
            product = i1 * i2
            i1 += 1
            i2 += 1
            if product == reverseInteger(product):
                palindromes.append(product)
    return palindromes

我所做的是创建一个palindromes列表。每次product是回文时,我都会将其附加到列表中(这就是您的return语句所在的位置)。在循环结束时,我返回列表

相关问题 更多 >

    热门问题