黑马程序员技术交流社区
标题: 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 |