序
本人为MATLAB小菜鸟,本博客作为阶段学习的小总结,欢迎大家学习交流!
题目二
费波拉契数列的核心思想是从第三项起每一项是前两项的和,题目有两个条件,首先能够找到不超过400万的最大斐波拉契数,再将其中的偶斐波拉契数求和。
思路
可以通过while循环找到最大的那个斐波拉契数,我觉着while循环最大的好处就在于不需要给出具体的值的范围作为判断条件,再通过rem(x,y)或者mod(x,y)找出偶数项,最后加在一起就可以了。
代码块
方法一(求出偶数项斐波拉契数列的和并输出此时的项数n和f(n))
clear;
f(1)=1;
f(2)=2;
n=2;sum=2;
while (f(n)<=4000000)
n=n+1;
f(n)=f(n-1)+f(n-2);
if(mod(f(n),2)==0)
sum=sum+f(n);
end
end
sum
n=n-1;
fprintf('最大的n和f(n)的值:\nf(%d)=%d\n',n,f(n));
方法二(求出偶数项斐波拉契数列的和并输出此时的最后一项f(n))
clear;
a=1;
b=1;
c=0;
sum=0;
while(c<=4000000)
if(rem(c,2)==0)
sum=sum+c;
end
c=a+b;
a=b;
b=c;
end
sum
c=a;
fprintf('最大的c的值:\nfibbonicci=%d',c);
答案
sum=4613732
最后,欢迎大家批评指正,一起交流!