斐波纳挈数列的三种求法(java实现)
- 什么是斐波纳挈数列?
后一项的数字等于前一项数字加上前一项的前一项的数字.我们称这样的数列为斐波纳挈数列,斐波纳挈数列有个特点,越往后数列的第n与比数列的第n+1项的比值越接近黄金值(0.618几几几~~~).
所以斐波纳挈数列也被称为黄金数列. - 斐波纳挈数列的三种求法—-直接上代码:
Java代码:
class Fabonacci
{
private int n;
public Fabonacci(){}
public Fabonacci(int a)
{
n= a;
}
/**
*方法一:迭代
*/
public void Print_Fab_n1()
{
int f1,f2,f3;
f1= f2= f3= 1;
if(n<= 2)
System.out.println("第"+n+"个斐波那契数是"+1);
int i= 3;
while(i++ <= n){
f3= f1+f2;
f1= f2;
f2= f3;
}
System.out.println("第"+n+"个斐波那契数是"+f3);
}
/**
*方法二:递归
*/
public int Print_Fab_n2(int m)
{
if(m<= 2)
return 1;
return Print_Fab_n2(m-1)+Print_Fab_n2(m-2);
}
/**
*方法三:借用数组存储
*/
public void Print_Fab_n3()
{
int a[]= new int [n+1];
a[1]= 1;
a[2]= 1;
for(int i= 3; i<=n; i++){
a[i]= a[i-1]+a[i-2];
}
System.out.println("第10个斐波那契数是"+a[n]);
}
public static void main(String[] args)
{
//方法1的调用
Fabonacci F1= new Fabonacci(10);
F1.Print_Fab_n1();
//方法2的调用
Fabonacci F2= new Fabonacci();
int f2= F2.Print_Fab_n2(10);
System.out.println("第10个斐波那契数是"+f2);
//方法3的调用
Fabonacci F3= new Fabonacci(10);
F3.Print_Fab_n3();
}
}
以上三种方法是求斐波纳挈数列的方法之三,若有大神还有其他方法望不吝赐教!!!哈哈哈