Fibonacci數列問題:
-
問題介紹:
Fibonacci數列是指這樣一個數列:0,1,1,2,3,5,8,13……
該數列的第一項為0,第二項為1,從第三項開始,每一項都是該項的前兩項之和。
顯然,這是一個線性遞推數列,即假設F(n)為該數列的第n項,則有:
F(n+2) = F(n+1) + F(n)
- MATLAB程式實作
%Date:2019-9-26
%Writer:無名十三
%% 本程式的目的是輸出Fibonacci數列的前n項
function results = Fibonacci(n) %n為正整數
if n == 1
fprintf('Fibonacci數列的第1項為:0\n')
else if n == 2
fprintf('Fibonacci數列的前2項為:0, 1\n')
else if n<=0 || mod(n,1)~=0
errordlg('輸入參數不符合要求!', '警告') %參數有誤警告
else
fprintf('Fibonacci數列的前%d項為:\n0 1 ', n)
F(1) = 0; %數列前2項
F(2) = 1;
for i = 3:n
F(i) = F(i-1) + F(i-2); %核心遞推公式
fprintf('%d ', F(i))
if mod(i,12) == 0 %整齊輸出結果
fprintf('\n')
end
end
fprintf('\n')
end
end
end
%%
- 結束語:本人剛開始接觸MATLAB,上述代碼根據本人了解進行編寫,如有錯誤或不妥之處,請指正!