gpt4 book ai didi

Python 嵌套循环 - 无输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:53 25 4
gpt4 key购买 nike

我刚开始学习 python。我正在尝试检查整数 x 是否为回文,然后将其除以范围之间的数字(从最大的 y 即 999 开始)y=999,998,...,100。如果 x/y=z 且 z 也是 3 位整数,则结束。否则从 x 中减去 1 并执行相同的过程。

def EuQ4():
x=998001
p=999
while 10000 < x:
x=x-1
if str(x)== str(x)[::-1]:
while p>100:
if x%p==0:
Pal=x/p
if Pal < 999:
print (Pal,p)
break
else:
x=x-1
else:
p=p-1
else:
x=x-1
EuQ4()

这是欧拉计划的第 4 题,即找到由两个 3 位数乘积构成的最大回文。

最佳答案

你这里有一些逻辑错误。有些会导致永无止境的循环。例如,当 x % p == 0Pal 大于 999 时会发生什么?你会得到一个无限循环。

我做了一些修改,但它仍然可以使用一些工作。

def EuQ4():
x = 998001
while 10000 < x:
if str(x) == str(x)[::-1]:
print("{} is a pali!".format(x))
# Move it here so each time it stats at the right
# number or else it will just skip it after it does it once.
p = 999
while p > 100:
if x % p == 0:
pali = int(x / p)
if pali < 999:
print(pali, p)
return
p -= 1
x -= 1

EuQ4()

编辑:

我通过在我的 IDE 中使用调试器发现了这些错误。您可以通过逐行检查代码几次来轻松完成同样的事情。

关于Python 嵌套循环 - 无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33710609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com