вопрос в том, что мне нужно найти сумму нечетных чисел в ряду Фибоначчи, но мне нужно, чтобы последний элемент был <400000

#python #python-3.x

#python #python-3.x

Вопрос:

 def calculateSum(n):

    fibo =[0] * (n 1) 
    fibo[1] = 1
    sm = fibo[0]   fibo[1]                                  
    for i in range(2,n 1):
         fibo[i] = fibo[i-1]   fibo[i-2]
         if fibo[i]%2!=0:
          sm = sm   fibo[i]
    return sm
 

Я написал этот код, но не знал, как заставить его вычислять до element < 400000

Комментарии:

1. Что organ ?

2. Вы имеете в виду O (n) время? что такое organ !!

Ответ №1:

Вы можете изменить эту строку,

 if fibo[i]%2!=0:
 

Для,

 if fibo[i]%2!=0 and fibo[i] < 400000:
 

Это проверяет, является ли элемент неделимым на 2 и меньше 400000.

Ответ №2:

Вместо цикла for используйте цикл while и установите условие завершения на что-то вроде example: while sum < 40000 .