【发布时间】:2018-11-02 02:32:14
【问题描述】:
我正在尝试找到由两个 3 位数字与我的代码相乘的最大回文数。它适用于 2 位数和 3 位数,但是当我尝试使用 4 位数时,它不再起作用了。最后没有输出或“进程以退出代码0完成”。它就像在无限循环中一样停止了。
palin = 0
for x in range(1, 10000):
for y in range(1, 10000):
mult = x * y
if str(mult) == str(mult)[::-1]:
if mult > palin:
palin = mult
print(palin)
我哪里做错了?大概一个月前我才开始使用Python,所以我的代码仍然没有效果
【问题讨论】:
-
这是一个无限循环,你知道,它很长......
-
您的算法没有停止。它很慢(而且是错误的)。所以你必须等待几分钟才能得到任何输出。
-
这是 PrjectEuleur 网站上的第 4 个问题,名为
Largest palindrome product。你的算法不正确,它不是一个无限循环。但是完成计算可能需要很长时间。更好的方法是优化你的代码。也许有一些数学......
标签: python for-loop if-statement palindrome halting-problem