题目:
13世纪初,欧洲数学家斐波那契在他的著作《算盘书》中出了一道题目:如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月里,又能开始生1对小兔子,假定在不发生死亡的情况下,由一对初生的兔子开始,1年后能繁殖出多少对兔子?
性质:
斐波那契数列的形式如下:
1,1,2,3,5,8,13,21,34,55,89......
其有如下两个性质:
(1)可以看出,从第三个数开始,每一个数都是前两个数字的和。例如:1+1=2;1+2=3;2+3=5;以此类推。
(2)从第3个数起,相邻两个数的比值是随序号的增加而逐渐趋于黄金比例分割的,即F(n-1)/F(n)无限趋于0.618...。
代码:
public class fibonacci implements algorithm{
int[] fibs = null;
int length = 0;
public fibonacci(int length) {
super();
fibs = new int[length];
this.length = length;
}
public void excute() {
if(length < 2) {
System.out.println("无法构成斐波那契数列");
return;
}
fibs[0] = fibs[1] = 1;
for(int i = 2; i < length; i++) {
fibs[i] = fibs[i-1] + fibs[i-2];
}
}
public void print() {
if(length == 0) {
System.out.println("数列中没有数据。");
return;
}
for(int i = 0; i < length; i++) {
System.out.print(fibs[i] + ",");
}
System.out.println();
}
}
函数excute用来计算长度为length的斐波那契数列,函数print用来将数列打印出来。测试函数如下:
public static void main(String[] args) {
fibonacci fib = new fibonacci(10);
fib.excute();
fib.print();
}
输出的结果为:
1,1,2,3,5,8,13,21,34,55,