превышение лимита времени
В задаче нужно найти остаток от деления n-го числа Фибоначчи на m. Код ниже решает ( использовала период пизано), но проблема в Time limit exceeded (не управляется в 3с). Что не так в коде? и как можно исправить ???
def fib(n, m):
if n <= 1:
return n
else:
a = [i for i in range(6*m)]
a[0] = 0
a[2] = 1
b, c = 0, 1
for i in range(2, 6*m):
a[i] = (b+c) % m
b ,c = c, b + c
if a[i-1]==0 and a[i]==1:
a[i-1:] = []
break
return a[n % len(a)]
Ответы (1 шт):
Автор решения: Karina
→ Ссылка
Получилось, всем спасибо! Долго не могла понять что не так. Надо было просто в массиве отдельном числа Фибоначчи хранить, но не для всех n, а в одном цикле для массива остатков от деления по модулю.