我正在解决这个问题(在http://projecteuler.net/problem=55找到)并且我无法做到正确所以我搜索了答案。 似乎我的代码给出的答案只有3 (我的:246,右:249)。 有人发现错误会很好。我现在已经尝试了3个小时......
这是我的代码:
from time import time
def rev(x):
return int(str(x)[::-1])
def Palindrome(x):
if x == rev(x): return True
else : return False
def test(x):
steps = 0
while True :
if not Palindrome(x):
steps += 1
else:
return False
if steps > 50 :
return True
x += rev(x)
def main():
starttime = time()
lychrel = 0
for i in range(1,10000):
if test(i) : lychrel += 1
elapsed = time() - starttime
print "The answer is %d found in %f seconds" %(lychrel,elapsed)
if __name__ == "__main__":
main()
提前致谢!
答案 0 :(得分:4)
来自http://projecteuler.net/problem=55
的说明令人惊讶的是,有一些回文数字本身就是Lychrel数字;第一个例子是4994。
您的代码无法将4994识别为Lychrel编号。