问题说明:
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在理论上要有无限的公兔做种,并且有那么多的食物以及不会出现伤亡。
|