Я застрял на эту проблему:
Каждый новый член последовательности Фибоначчи образуется сложением двух предыдущих условий. Начиная с 1 и 2, первые 10 условия будут:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Рассматривая условия в последовательность Фибоначчи, значения которой не превышают четырех миллионов, найдет сумму четных членов.
Я попытался выяснить, был ли вопрос моим генератором чисел Фибоначчи, кодом, который получает четные числа, или даже тем, как я добавляю числа безрезультатно.
Код
я решил хранить номера в списках. Здесь я их создаю.
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
Вопрос
Я знаю, что это ужасный способ задать вопрос, но что не так? Пожалуйста, не дайте мне ответа - просто укажите проблемный раздел.
'для числа в диапазоне (len (list_of_numbers)): test_number = list_of_numbers [coord]' может быть переведено в 'для test_number в list_of_numbers'. Тогда вы можете избавиться от 'coord'. –
+1 для «Пожалуйста, не дайте мне ответа - просто укажите проблемный раздел». –