Project Euler 55 - 答案仅差3(奇怪!)
我在解决一个问题(可以在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()
提前谢谢大家!
1 个回答
5
根据http://projecteuler.net/problem=55上的描述
令人惊讶的是,有些回文数字本身也是Lychrel数字;第一个例子就是4994。
你的代码没有把4994识别为Lychrel数字。