Просто подумал, что я бы добавил это здесь ...
Можно найти n-й член последовательности Фибоначчи без использования рекурсии.(Существует решение в закрытой форме.) Я не обязательно ожидаю, что этот ответ будет принят, но просто хотел показать, что можно найти n-й член последовательности Фибоначчи без использования рекурсии.
Попробуйте эту функцию.Я сделал это давным-давно.Я также добавил некоторый код для округления вывода до ближайшего целого числа, если входное значение является целым числом.Я обнаружил, что это необходимо, потому что иногда округление приводит к тому, что решение в закрытой форме не производит целое число из-за того, что компьютер округляет иррациональные числа.
function x = fib(n)
%FIB Fibonacci sequence.
% X = FIB(N) returns the Nth term in the Fibonacci sequence, which is
% defined in the following way:
%
% FIB(N+2) = FIB(N+1) + FIB(N) , FIB(0) = 0 , FIB(1) = 1
%
% The closed form solution to the Fibonacci sequence is:
%
% N N
% / 1 + SQRT(5) \ / 1 - SQRT(5) \
% | ----------- | - | ----------- |
% FIB(N) = \ 2 / \ 2 /
% ------------------------------------
% SQRT(5)
%
% Although this formula is only physically meaningful for N as an
% integer, N can be any real or complex number.
r = sqrt(5);
x = (((1+r)/2).^n-((1-r)/2).^n)/r;
for l = numel(n)
if isequal(mod(n(l),1),0)
x(l) = round(x(l));
end
end
end