繁体   English   中英

为什么我的 Project Euler 问题 25 答案错误?

[英]Why is my Project Euler problem 25 answer wrong?

Project Euler 问题 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 位数字

如果使用if f > (10**(1000-1)):则会得到 4782。

试试这个:-

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM