我试图检查一系列数字(从100到999)的产品是否是回文。我的回文检查工作正常,但当我尝试将其纳入我的循环时,我得不到所有可能的答案。
def pali_check(n):
n = str(n)
pali = n[::-1]
if pali == n:
print(pali)
for x in range(999,99,-1):
product = x*(x+1)
pali_check(product)
我应该得到这个范围内的所有回文(例如,一个是906609)
但是,我得到的唯一值是289982.如何修复我的代码,以便它能给我所有可能的结果?
答案 0 :(得分:0)
906609 = 913 * 993
由于你只检查n *(n + 1),你不会找到那个
另一方面,
289982 = 538 * 539
这就是你找到它的原因
您应该尝试使用嵌套循环并将两个循环变量相乘
for x in range(999, 99, -1):
for y in range(999, 99, -1):
product = x * y
pali_check(product)
您可以轻松优化上述内容以防止重复