// 斐波那契数列
// f(n) = f(n-1) + f(n-2);
// n<=0 f(n)=0; f(1)=1; f(2)=1;
public class Test
{
public static void main(String[] args)
{
for (int i = 0; i < 10; i++)
{
System.out.println("f(" + i + ")=" + fibonacci1(i));
}
System.out.println("------------------------");
for (int i = 0; i < 10; i++)
{
System.out.println("f(" + i + ")=" + fibonacci2(i));
}
}
// 递归算法
static int fibonacci1(int n)
{
if (n <= 0)
{
return 0;
}
else if (n == 1)
{
return 1;
}
else
{
return fibonacci1(n - 1) + fibonacci1(n - 2);
}
}
// 查找算法
static int size = 9999;
static double[] fResult = new double[size + 1];
static
{
// fResult初始化fResult数组
fResult[0] = 0;
fResult[1] = 1;
for (int i = 2; i <= size - 1; i++)
{
fResult[i] = fResult[i - 1] + fResult[i - 2];
}
}
static double fibonacci2(int n)
{
return fResult[n];
}
// 通项公式 F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根号5】
// 分治策略
}
编程之美_008斐波那契数列
原文作者:q启明星
原文地址: https://blog.csdn.net/adam_wzs/article/details/8510256
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/adam_wzs/article/details/8510256
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。