繁体   English   中英

Python中的项目Euler#2

[英]Project Euler #2 in Python

背景

我坚持这个问题:

Fibonacci序列中的每个新术语都是通过添加前两个术语生成的。 从1和2开始,前10个术语将是:

1,2,3,5,8,13,21,34,55,89 ......

通过考虑Fibonacci序列中的值不超过四百万的项,找到偶数项的总和。

我试图发现问题是我的Fibonacci数字生成器,获取偶数的代码,甚至我添加数字无效的方式。

我决定将这些数字存储在列表中。 在这里,我创造了它们。

list_of_numbers = [] #Holds all the fibs
even_fibs = [] #Holds only even fibs

然后,我创建了我的发电机。 这是一个潜在的问题领域

x,y = 0,1 #sets x to 0, y to 1
while x+y <= 4000000: #Gets numbers till 4 million
    list_of_numbers.append(y)
    x, y = y, x+y #updates the fib sequence

然后,我创建了一些代码来检查数字是否是偶数,然后将其添加到even_fibs列表中。 这是代码中的另一个弱点。

coord = 0
for number in range(len(list_of_numbers)):
    test_number = list_of_numbers [coord]

    if (test_number % 2) == 0:
        even_fibs.append(test_number)
    coord+=1

最后,我显示信息。

print "Normal:  ", list_of_numbers #outputs full sequence
print "\nEven Numbers: ", even_fibs #outputs even numbers
print "\nSum of Even Numbers:  ", sum(even_fibs) #outputs the sum of even numbers

我知道这是一个提出问题的可怕方式, 但出了什么问题? 请不要给我答案 - 只需指出有问题的部分。

当序列中接下来两个值的总和大于4,000,000时,您将停止。 您打算将序列中的所有值都考虑 4,000,000。

暂无
暂无

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

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