У меня есть функция, которая сообщает мне n-ое число в последовательности Фибоначчи. Проблема в том, что при попытке найти большее число в последовательности Фибоначчи это становится очень медленным, кто-нибудь знает, как я могу это исправить?
function f = rtfib(n)
if (n==1)
f= 1;
elseif (n == 2)
f = 2;
else
f =rtfib(n-1) + rtfib(n-2);
end
Результаты,
tic; rtfib(20), toc
ans = 10946
Elapsed time is 0.134947 seconds.
tic; rtfib(30), toc
ans = 1346269
Elapsed time is 16.6724 seconds.
Я не могу даже получить значение через 5 минут, сделав rtfib(100)
PS: Я использую октаву 3.8.1