递归Fibonacci Matlab函数

Recursive Fibonacci Matlab function

我尝试编写一个函数来计算斐波那契数列的第 n 个元素:

function [F] = Fibonacci(n)

if n==0
F = 0 ;
elseif n==1
F = 1 ;
else 

F = Fibonaccie(n-1) + Fibonacci(n-2) ;

end
end

但结果我得到了这个:

Undefined function 'Fibonaccie' for input arguments of type 'double'.

Error in Fibonacci (line 14)
    F = Fibonaccie(n-1) + Fibonacci(n-2) ;

我不知道问题到底出在哪里。

第 14 行有一个错字。您刚刚写了“Fibonaccie”,但一定是 Fibonacci..

顺便说一句,请注意您不必编写 elseif 条件。您可以使用 or 语句仅用一个 else 来完成。但是,为了使您的代码更健壮,您应该考虑 n < 0 案例:

function F = Fibonacci(n)

if n < 0
   F = 0;    
elseif n == 0 || n == 1
   F = n ;
else     
   F = Fibonacci(n-1) + Fibonacci(n-2) ;    
end

end