Fibonacci sequence with natural numbers

Напишите программу, которая из двух заданных натуральных чисел ? и ? создаст список, содержащий элементы ?, являющиеся элементами последовательности Фибоначчи, по алгоритму: c=a+b a=b b=c пока ? не превысит (?+?)^3, затем вернет сумму всех элементов созданного списка. Например: Для ?=2,?=4 он вернет список символов [6, 10, 16, 26, 42, 68, 110, 178] и сумму 456. Мой код:

a, b = 2, 4
L = []
c = 0
while c != (a + b) ** 3:
        c = a + b
        a = b
        b = c
        L.append(c)
print(L)
print(sum(L))

Мне нужно, чтобы он выдавал [6, 10, 16, 26, 42, 68, 110, 178] и сумму 456, но он даже не компилируется


Ответы (1 шт):

Автор решения: MBo

Судя по примеру, вам нужно запомнить начальные значения a,b и сравнивать с с кубом их суммы.

И "пока не превысит" не означает, что нужно ловить строгое равенство.

t = (a + b) ** 3
c = a + b
while c <= t:
    L.append(c)
    a = b
    b = c
    c = a + b
     
→ Ссылка