写在前面:作者本人是纯纯的菜鸟,学习的内容来自于 中国大学MOOC 中南大学 《科学计算与MATLAB语言》,欢迎各位大佬或新手在这里和平讨论,如果我有错误请各位不吝赐教,提前感谢各位捧场!
在学习递归调用之前,先回答什么是“嵌套调用”的问题
嵌套调用:顾名思义,当被定义的函数中含有函数时,称为嵌套调用。
递归调用是特殊的嵌套调用,即被定义的函数调用了它本身。
例如:
function f=fact(n)
...
fact(n-1);
...
递归调用的分类:
- 直接递归调用:定义的函数中含有它本身;
- 间接递归调用:定义的函数f调用了另一个函数g,而这个函数g又含有调用函数f的命令。
例题1:利用递归函数计算n!
思路:
function f=fact(n)
if n<=1
f=1;
else
f=fact(n-1);
end
例题2:斐波那契数列:
验证斐波那契数列具有如下性质:
思路:与上题类似
%利用递归调用计算斐波那契数列问题
function f=fib(n)
if n>2
f=fib(n-1)+fib(n-2);
else
f=1;
end
%验证斐波那契数列前n项平方和为第n项和第n+1项乘积(取n=20)
F=[];
for k=1:20
F=[F,fib(k)*fib(k)];
end
a=sum(F)
b=fib(20)*fib(21)
以上就是今天分享的全部内容了,再次感谢各位耐心看到这里!