Fibonacci Series Using Recursive Function
Show older comments
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 ?
1 Comment
Khulud Al-esmail
on 17 Sep 2020
put v=1;
Answers (3)
James Tursa
on 31 Aug 2020
0 votes
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.
a = lfibor(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
on 13 Apr 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
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!