Fibonacci Series Using Recursive Function

40 visualizaciones (últimos 30 días)
Asif Ahmed
Asif Ahmed el 30 de Ag. de 2020
Respondida: Sandeep Kumar Patel el 13 de Abr. de 2022
I want to write a ecursive function without using loops for the Fibonacci Series. I done it using loops
function f =lfibor(n)
for i=1:n
if i<=2
f(i)=1;
else f(i)=f(i-2)+f(i-1);
end
end
end
I got the bellow code but It does not work for many RANDOM Number such as N=1
function v = fibor(n,v)
if nargin==1
v = fibor(n-1,[1,1]);
elseif n>1
v = fibor(n-1,[v,v(end-1)+v(end)]);
elseif n<1
v = 0;
end
How can I fix these ?

Respuestas (3)

James Tursa
James Tursa el 31 de Ag. de 2020
All of your recursive calls decrement n-1. Eventually you will wind up with the input n=0 and just return v=0, which is not what you want. Get rid of that v=0.

Varsha Lohani
Varsha Lohani el 23 de Oct. de 2021
a = lfibor(5)
a = 1×5
1 1 2 3 5
function f =lfibor(n)
if ~isscalar(n) || n ~= fix(n) || n < 0
error('non-negative integer scale input expected')
end
for i=1:n
if i<=2
f(i)=1;
else
f(i)=f(i-2)+f(i-1);
end
end
end

Sandeep Kumar Patel
Sandeep Kumar Patel el 13 de Abr. de 2022
function v = fibor(n,v)
if nargin==1
v = fibor(n-1,[1,1]);
elseif n>1
v = fibor(n-1,[v,v(end-1)+v(end)]);
elseif n<1
v = 1;
end

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by