MATLAB 求编写产生fibonacci数列前20项1,1,2,3,5,8,13................

求编写产生fibonacci数列前20项1,1,2,3,5,8,13................

#include<iostream>

using namespace std;

int Fibonacci(int index)

if( index == 1)

return 1;

if( index == 2)

return 1;

return Fibonacci(index - 1) + Fibonacci(index - 2);

int main()

cout << Fibonacci( 20);

return 0;

含义

当n>0,有Fn+2种这样的方法。因为当中只有一种方法不用使用2,就即1+1+...+1(n+1项),于是我们从 Fn+2减去1。

若第1个被加数是2,有 Fn种方法来计算加至n-1的方法的数目。

若第2个被加数是2、第1个被加数是1,有Fn-1种方法来计算加至 n-2的方法的数目。

重复以上动作。

若第n+1个被加数为2,它之前的被加数均为1,就有F0种方法来计算加至0的数目。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-05
程序如下F:
>>clear
n=input('please
input
n=');
%输入前n项的n值..
for
i=1:(n-2)
a(1)=1;a(2)=1;
a(i+2)=a(i+1)+a(i);
end
M=sum(a')
点回车运行
(本例中.n=20)
please
input
n=20
得到结果:M=17710
不好意思..理解错误..上面程序是求前20项的和
求前20项..值.
>>
n=input('please
input
n=');
%输入前n项的n值..
for
i=1:(n-2)
a(1)=1;a(2)=1;
a(i+2)=a(i+1)+a(i);
end
a'
%回车.输入
20
结果:
ans
=
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
第2个回答  推荐于2018-05-06
程序如下F:
>>clear
n=input('please input n='); %输入前n项的n值..
for i=1:(n-2)
a(1)=1;a(2)=1;
a(i+2)=a(i+1)+a(i);
end
M=sum(a')
点回车运行 (本例中.n=20)
please input n=20
得到结果:M=17710

不好意思..理解错误..上面程序是求前20项的和

求前20项..值.
>> n=input('please input n='); %输入前n项的n值..
for i=1:(n-2)
a(1)=1;a(2)=1;
a(i+2)=a(i+1)+a(i);
end
a' %回车.输入 20

结果:
ans =

1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765本回答被提问者和网友采纳
相似回答