为什么我的欧拉计画问题25回答错误?

时间:2018-12-21 01:26:29

标签: python

欧拉计划问题25 https://projecteuler.net/problem=25,非常简单。要解决的问题是:

  

斐波纳契数列中第一项包含1000个数字的索引是什么?

但是我的答案是错误的,我不知道为什么。

这再简单不过了,我只是得到了错误的答案

def fib_gen(i=1, j=1):


  yield 1

  yield 1

  while 1:

    i, j = i+j, i
    yield i

for i, f in enumerate(fib_gen()):

  if f < (10**1000):
    pass
  else:
    if f > (10**1000-1):
      print(i+1, f)
      break

我的回答4787

我认为正确的答案4782。

  

更新没关系。我知道10 ** 1000是1001位数字

2 个答案:

答案 0 :(得分:0)

如果使用if f > (10**(1000-1)):,您将获得4782。

答案 1 :(得分:0)

试试这个:-

def fib(limit):
    var, var1,l = 0,1,0
    for i in range(limit):
        ph = var1
        var1, var = var+var1, ph
        l = ph
    return l

counter = -1
while 1:
    counter += 1
    v = fib(counter)
    if len(str(v)) == 1000:
        print(counter)
        break
# output: 4782