matlab编程问题.将Fibnacci数列按照如下方式排列(1,2)、(3,5,8)、(13,21,34,55)、……

问题描述:

matlab编程问题.将Fibnacci数列按照如下方式排列(1,2)、(3,5,8)、(13,21,34,55)、……
请找出与2014相差最小的那一项,该数所在的组号,并计算该组的Fibnacci数列各项的和.如果满足条件的数有两个(比2014小的一个,比它大的一个,如2000和2028),请找出这两个组号,分别计算两组的各项之和.(这种排列方式可以矩阵形式存储,查找用find函数).其实我主要想问怎么把fibnacci数列写成题目的排列方式
1个回答 分类:综合 2014-10-10

问题解答:

我来补答
你的意思是:第1组1,2;第2组3,5,8,第3组,13,21,34,55;计算2014所在的那一组?
再问: 是的。编程......
再答: 对的话多个点分
clc
clear
a=[];
a(1)=1;
a(2)=2;
for i=3:104
a(i)=a(i-1)+a(i-2);
end
aa=abs(a-2014);
[xx,xiang]=min(aa);

b={};
m=1;
for i=1:13
b{i}=a(m:m+i);
m=m+i+1;
end
B={};
M=[];
for i=1:13
B{i}=abs(b{i}-2014);
M=[M,min(B{i})];
end
[x,zu]=min(M);

he=sum(b{zu});
再问: 3Q~其实我也搞定了~
 
 
展开全文阅读
剩余:2000