黑马程序员技术交流社区

标题: Java经典算法之费式数列(Fibonacci) [打印本页]

作者: 王海彬    时间: 2015-9-15 23:12
标题: Java经典算法之费式数列(Fibonacci)
问题说明:
      Fibonacci为1200年代的欧洲数学家,在他的著作中曾经提到:若有一只兔子每个月生一只小兔子,一个月后小兔子也开始生产。起初只有一只兔子,一个月后就有两只兔子,两个月后有三只兔子,三个月后有五只兔子(小兔子投入生产)……
    这就是Fibonacci数列,一般习惯称之为费式数列,例如:1,1,2,3,5,8,13,21,34,55,89,……

算法代码
public class Fibonacci {
    public static void main(String[] args) {
        int[] fib = new int[20]; //假设从一只兔子开始养了18个月,用int数组存储数据
        //先显示初始化两个元素
        fib[0] = 0;
        fib[1] = 1;
        //从索引2开始计算养兔子的月数,根据规律添加元素及遍历
        for(int i = 2; i < fib.length; i++) {
            fib = fib[i-1] + fib[i-2];         
            System.out.print(fib);
                if (i != fib.length-1)//用,号隔开输出的数字并在索引到最大之后不添加,号
                {
                        System.out.print(",");
                }               
        }
        System.out.println();//最后在控制台跳转至下一行
    }
}
运算结果是:1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181
当然了Fibonacci在理论上要有无限的公兔做种,并且有那么多的食物以及不会出现伤亡。


作者: 王海彬    时间: 2015-9-15 23:13
希望可以让一些想了解算法的哥们共同进步




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2