回环检查员在循环时没有给出所有正确的值

时间:2017-12-04 04:27:13

标签: python python-3.x for-loop palindrome

我试图检查一系列数字(从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.如何修复我的代码,以便它能给我所有可能的结果?

1 个答案:

答案 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)

您可以轻松优化上述内容以防止重复