Project Euler 55 - 仅通过 3 来回答(奇怪!)

bil*_*pcs -1 python python-2.7

我正在解决这个问题(在http://projecteuler.net/problem=55找到),但我无法解决它,所以我搜索了答案。似乎我的代码给出的答案仅差 3 (mine: 246 , right: 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()
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Que*_*onC 5

来自http://projecteuler.net/problem=55的描述

令人惊讶的是,有些回文数本身就是 Lychrel 数;第一个例子是 4994。

您的代码无法将 4994 识别为 Lychrel 数。