Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的项目Euler问题25答案错误?_Python - Fatal编程技术网

Python 为什么我的项目Euler问题25答案错误?

Python 为什么我的项目Euler问题25答案错误?,python,Python,欧拉计划问题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

欧拉计划问题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
def fib_gen(i=1,j=1):
收益率1
收益率1
而1:
i、 j=i+j,i
产量一
对于枚举中的i,f(fib_gen()):
如果f<(10**1000):
通过
其他:
如果f>(10**1000-1):
打印(i+1,f)
打破
我的答案4787

我想正确答案是4782

更新没关系。我算出10**1000是1001位数字


如果使用
if f>(10**(1000-1)):

试试这个:-

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

你应该解释为什么这会有不同。@PeterWood为什么这是个糟糕的问题?除了链接到ProjectEuler而不是复制这里的规范之外,它看起来还不错。它有MCVE、预期结果和不正确的结果。@PeterWood它甚至没有错误缩进,这是一个困扰至少75%python问题的问题。@Barmar它链接到场外,指的是Euler问题编号,而不是他们遇到的实际问题,这不是最简单的示例(尝试第10个或第100个术语如何?),这不太可能帮助其他任何人。@PeterWood因为问题在于他如何表达术语编号,如果他只是尝试第10个或第100个术语,他不会有问题。我已经提到了场外链接。这不是一个完美的问题,但也不是那么可怕,应该删除而不是改进。你应该使用数学而不是暴力。记住Euler喜欢的对数,看看你能不能用它们来找到第n项中位数的表达式。为什么你认为这是一个1001位数的问题?Python支持这么大的数字。@Barmar我正在寻找第一个1000位数字。我的密码是第一个1001位数的。