在c语言中,如何利用数组求斐波那契数列的前20项?
在c语言中,以vc为例利用数组求斐波那契数列的前20项的具体步骤如下:
1、首先,打开vc;
2、点击文件、新建;
3、选择win32 console application 并在右侧输入工程的名字和地址,确定;
4、选择一个空的工程,完成;
5、再次点击文件、新建,
6、选择c++ source file 并输入文件名字,确定;
7、输入如图所示的代码,这里以前十个斐波那契数列数为例,需要输出其他个数请把5改成对应数字的一半(比如要输出前20个,就把图中的5改成10);
8、点击右上角的编译运行按钮;
9、ok!我们成功地输出了斐波那契数列的前20项。
斐波那契数列是:1,1,2,3,5,8,13,21,34,55,89...
规律是:f[0]=1,f[1]=1,f[i]=f[i-1]+f[i-2],i>1
所以在C语言中利用数列的求法如下:
#include <stdio.h>
void main()
{
int i,array[20]={1,1};
for (i=2; i<20; i++)
{
array[i]=array[i-2]+array[i-1];
}
for (i = 0; i<20; i++)
{
printf("%d ",array[i]);
}
printf("\n");
}
#include <stdio.h>
int main()
int i,fib[20]={0,1};
for (i=2; i<20; i++)
fib[i]=fib[i-2]+fib[i-1];
printf("%d ",fib[19]);return 0;
#include<stdio.h>
void main()
{long sum=0;
long a[20];
int i;
a[0]=1;a[1]=1;
for(i=2;i<20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
sum=sum+a[i];
printf("%ld",sum);
}
数列与矩阵
对于斐波那契数列1、1、2、3、5、8、13、……。有如下定义
F(n)=F(n-1)+F(n-2)
F(1)=1
F(2)=1
对于以下矩阵乘法
F(n+1) = (1,1 ) (F(n),F(n-1))T
F(n) =(1,0 ) (F(n),F(n-1))T
它的运算就是右边的矩阵 (1,1)乘以矩阵(F(n),F(n-1)),右边的矩阵(1,0 ) 乘以矩阵(F(n),F(n-1)),得到:
F(n+1)=F(n)+F(n-1)
F(n)=F(n)
以上内容参考:百度百科-斐波那契数列