python - 我的斐波那契数列生成器有什么问题?

标签 python fibonacci

我正在尝试解决 Problem #25 on Project Euler 。到目前为止,这是我得到的:

def fibonacci(length):
    fibs = [0,1]
    while length > len(fibs):
        fibs.append(fibs[-1] + fibs[-2])        
    return fibs

fibs = fibonacci(5000)

for i in fibs:
    if len(str(i)) > 1000:
        print i

        ## The location of the number in the Fibonacci set.
        print [j for j, x in enumerate(fibs) if x == i]

我测试过的每个数字(包括一些 large ones )都匹配,但 Project Euler 不接受我得到的答案。

我读到答案是第 4782 个数字,但我得到第一个超过 1000 位的数字是第 4787 个,

11867216745258291596767088485966669273798582100095758927648586619975930687764095025968215177396570693265703962438125699711941059562545194266075961811883693134762216371218311196004424123489176045121333888565534924242378605373120526670329845322631737678903926970677861161240351447136066048164999599442542656514905088616976279305745609791746515632977790194938965236778055329967326038544356209745856855159058933476416258769264398373862584107011986781891656652294354303384242672408623790331963965457196174228574314820977014549061641307451101774166736940218594168337251710513138183086237827524393177246011800953414994670315197696419455768988692973700193372678236023166645886460311356376355559165284374295661676047742503016358708348137445254264644759334748027290043966390891843744407845769620260120918661264249498568399416752809338209739872047617689422485537053988895817801983866648336679027270843804302586168051835624516823216354234081479331553304809262608491851078404280454207286577699580222132259241827433

欧拉计划说我试过的每一个答案都是错误的。 (显然我还没有尝试 4782,因为那会作弊。)

我非常接近,显然出了点问题,但是什么?

最佳答案

你正在检查 len(str(i)) > 1000,根据问题陈述你应该检查 len(str(i)) == 1000 .

此外,您将链接的答案中的数字误解为斐波那契数。其实仔细看就是调用fib函数的次数。您的斐波那契数 4782 是正确的。

关于python - 我的斐波那契数列生成器有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16026844/

相关文章:

java - 如何使用递归更新斐波那契计数器?

python - _tuple 在 Python 中有用吗?

python - 使用Django模板标签执行查询集吗?

fibonacci - 如何使用运算符(或其他东西)编写 N N N .... N?

python : Fibonacci sequence using range(x, y,n)

haskell - 在 Haskell 中生成斐波那契数?

python - 如何在 Python 中将 float 转换为 10 次方的科学记数法?

python - 使用 Python 抓取网页

python - 使用 python 设置背景图像

Haskell:改进我的尾递归斐波那契实现