回文检查器在循环时没有给出所有正确的值
Palindrome checker not giving all correct values when looped
我正在尝试检查一系列数字(从 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。如何修改我的代码以便它给出所有可能的结果?
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)
您可以轻松优化以上内容以防止重复
我正在尝试检查一系列数字(从 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。如何修改我的代码以便它给出所有可能的结果?
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)
您可以轻松优化以上内容以防止重复