算法基础篇之顺推法实例——fibonacci数列

题目:

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,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值