项目欧拉55 - 只回答3(奇怪!)

时间:2014-05-06 16:36:27

标签: python python-2.7

我正在解决这个问题(在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 个答案:

答案 0 :(得分:4)

来自http://projecteuler.net/problem=55

的说明
  

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

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