前言
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(*n *≥ 2,*n ∈ N)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果
定义
斐波那契数列指的是这样一个数列: 斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233…… 规则:第一项和第二项是1,之后的每一项为之前两项的和
实现方案
这种实现方式有二种一种是递归, 但是效率很低,
递归实现方案:
public static int test(int n){
if(n<2){
return n;
}
return test(n-1)+test(n-2);
}
上面这种实现方案在数据量大了以后, 效率不是一般的低, 谁公司敢用,估计离倒闭不远了,那么什么原因导致它效率低呢?我们来分析下,比如就求第5项
你会发现效率低的原因是因为会重复的求之前已经存在的,那么就引用了我们第二种做法,
public static int test2(int n){
if(n<=1){
return n;
}
int first = 0;
int second = 1;
//这里用到for循环只是表示要加多少次,
for(int i=0;i<n-1;i++){
int sum = first+second;
first = second;
second = sum;
}
return second;
}
第一篇博客就写完了!