2024-05-01 21:53:44 发布
网友
我写的代码是用来寻找值不超过4的斐波那契数列的偶数项之和百万代码对于高达40k的值工作得很好,但是我发现了一个内存错误,因为找到了高达400万的值,有人能帮我解决这个问题吗
我的代码是:
def fib(x): l=[0,1] m=[] a=0 c=0 b=1 while len(l) <=x: d=c+b c=b b=d l.append(d) if d%2==0: m.append(d) a=a+d print print a print m
如评论中所说,用计数器代替l。如果需要打印所有偶数fib数字,请保留m,否则将其全部删除。在
初始化计数
count = 2
每次while循环的计数都增加1。在
我只想澄清一下:您正在寻找一个函数,它返回fibonacci序列中所有偶数的和,最多400万。用这样两个不同的函数试试。在
fibonacci序列中给定数字的第一个函数:
def fib(n): a = 0 b = 1 for e in range(n): old_a = a a = b b = old_a + b return a
第二个函数调用前面函数的和(并使用计数,而不是列表,以便节省内存。):
然后调用你的函数。例如:
print even_sum(100)
这给了我们这个答案:
286573922006908542050
试试这个:
def sum_fib(x): a = 0 c = 0 b = 1 l = 2 while l <=x: d = c + b c = b b = d l += 1 # yoda conditions check if 0 == d % 2: # using binary should be faster (0 == d & 1) a += d print print a
如评论中所说,用计数器代替l。如果需要打印所有偶数fib数字,请保留m,否则将其全部删除。在
初始化计数
每次while循环的计数都增加1。在
我只想澄清一下:您正在寻找一个函数,它返回fibonacci序列中所有偶数的和,最多400万。用这样两个不同的函数试试。在
fibonacci序列中给定数字的第一个函数:
第二个函数调用前面函数的和(并使用计数,而不是列表,以便节省内存。):
^{pr2}$然后调用你的函数。例如:
print even_sum(100)
这给了我们这个答案:
286573922006908542050
试试这个:
相关问题 更多 >
编程相关推荐