我可能做了很多错事,因为我只是一个初学者。但有人请帮帮我吗?目标是打印由两个3位数字的乘积制成的最大回文。感谢。
palindromes = []
for i in range(100, 1000):
for x in range(100, 1000):
a = x*i
str(a)
b = a[::-1]
if a == b :
palindromes.append(a)
print (palindromes[len(palindromes) - 1])
答案 0 :(得分:2)
在定义代码之前,您在代码中使用x
,因此您将收到该代码的错误。您还有其他错误:您应该能够使用回溯轻松找到它们。一个逻辑错误是您找到a
的字符串但不将其存储在任何位置,因此它会丢失。您也可以以a
作为整数开始,然后尝试将其作为字符串:保持您的类型分开,除非您有一个很好的理由来更改类型。您应该使用更好的变量名称:a,b,i,x
是糟糕的名称。写下他们的意思!输入几个字符很便宜,可以防止错误。
每个回文必须是两个三位数字的乘积,因此您需要两个嵌套循环range(100, 1000)
。使用x
作为您的其他循环变量,您不需要更改代码。
答案 1 :(得分:0)
在打印之前,添加一行:
palindrome.sort()
答案 2 :(得分:0)
基本要点:
代码:
palindromes = []
for i in range(100, 1000):
for x in range(100, 1000):
a = str(x*i)
b = a[::-1]
if a == b :
palindromes.append(int(a))
print (sorted(palindromes)[-1])