Fibonacci function displaying issues
1 回表示 (過去 30 日間)
古いコメントを表示
I created a function for a fibonacci number. I want it to display the largest fibonacci number that is less than or equal to the input. I currently have it set up to run and it will display the last number in the series. Any suggestions as to getting it to display the largest number less than or equal to n?
function f=lastfibonacci(n)
% Returns the largest fibonacci number that is less than or equal to n.
if n<=1;
f=1;
else
f=(lastfibonacci(n-1)+lastfibonacci(n-2));
end
end
Wanting:
Ex.: lastfibonacci(7)
ans= 5
0 件のコメント
採用された回答
Matt Fig
2012 年 10 月 19 日
If you choose to use recursion, you will have quite some time with this. I think it is better to use iteration, myself.
function F3 = lastfibonacci(n)
% Help, and need to check for n<1.
F1 = 1;
F2 = 1;
while F2<=n
F3 = F2;
F2 = F2 + F1; % The Fib number.
F1 = F3;
end
0 件のコメント
その他の回答 (1 件)
Image Analyst
2012 年 10 月 19 日
Ashlee, I suggest you add this line at the beginning of the function to help you debug it:
fprintf('n = %d\n', n);
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!