1.遞歸。
在n比較大(〉30)的情況下,計算會很慢。因為它有大量的兀餘計算,不贅述。
function x = fibbo3(n)
if n < 3
x = 1;
else
x = fibbo3(n-1) + fibbo3(n-2);
end;
2.輾轉相加法。
function [ x ] = fibbo( n )
if n < 1
error('n should >= 1');
end;
a = 1;
b = 1;
for i = 1 : n
c = a + b;
a = b;
b = c;
end;
x = c;
3.建立數組法。需要儲存數組。
function x = fibbo2 (n)
F = [1 1];
helper(n);
x = F(n);
F
function helper(n)
if numel(F) < n
helper(n-1)
F(n) = F(n-1) + F(n-2);
end
end
end