欧拉计划问题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位数字
答案 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