首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

编程之好_008斐波那契数列

2013-01-23 
编程之美_008斐波那契数列// 斐波那契数列// f(n) f(n-1) + f(n-2)// n0 f(n)0 f(1)1 f(2)1pub

编程之美_008斐波那契数列

// 斐波那契数列// 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】        // 分治策略}

2楼adam_zs昨天 18:18
[code=java]n输出结果:nf(0)=0nf(1)=1nf(2)=1nf(3)=2nf(4)=3nf(5)=5nf(6)=8nf(7)=13nf(8)=21nf(9)=34n------------------------nf(0)=0.0nf(1)=1.0nf(2)=1.0nf(3)=2.0nf(4)=3.0nf(5)=5.0nf(6)=8.0nf(7)=13.0nf(8)=21.0nf(9)=34.0nn[/code]
1楼sky770077昨天 17:03
// n<=0 f(n)=0; f(1)=1; f(2)=1; 写错了亲 f(0) = 0
Re: sky770077昨天 17:18
回复sky770077n额 看错了 原来是 n<= 0时 f(n) = 0
Re: adam_zs昨天 17:19
回复sky770077n呵呵、

热点排行