在Matlab中使用递归函数生成Fibonacci序列,不使用任何循环



我正在尝试编写一个递归matlab函数,该函数接受一个参数并生成高达n的斐波那契序列。我在各处找到的代码要么只输出第n项,要么使用循环输出整个序列。现在我不允许使用任何类型的循环,只允许使用纯递归函数。如果有人能分享他的想法,我将不胜感激。提前谢谢。我只是为了方便而复制给出第n个术语的代码。

function f = fibor(n)
if n == 1 || n == 2
f = 1;
else
f = fibor(n-1) + fibor(n-2);
end
end

也许你可以试试下面的代码,它可以保存输出

function f = fibor(n)
if n <= 2
f = ones(1,n);
else
u = fibor(n-1);
f = [u,sum(u(end-1:end))];
end
end

它给出

>> fibor(5)
ans =
1   1   2   3   5
>> fibor(10)
ans =
1    1    2    3    5    8   13   21   34   55

相关内容

  • 没有找到相关文章