为什么我的第25题回答错了?

2024-04-23 20:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

What is the index of the first term in the Fibonacci sequence to contain 1000 digits?

但我的回答是错的,我不知道为什么。你知道吗

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

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。你知道吗

UPDATE never mind. I figured out 10**1000 is 1001 digits number


Tags: the项目答案inindexnetifis
2条回答

试试这个一个:-你知道吗

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

如果您使用if f > (10**(1000-1)):,您将得到4782。你知道吗

相关问题 更多 >