欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java——斐波那契数列不死神兔问题(利用BigInteger完成)

程序员文章站 2022-05-02 10:04:37
...

1.用循环实现不死神兔
故事得从西元1202年说起,话说有一位意大利青年,名叫斐波那契。
在他的一部著作中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔,
再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,一年内没有发生死亡,
问:一对刚出生的兔子,一年内繁殖成多少对兔子?

 		 1 1 2 3 5 8 13 21

2.第100个月繁殖多少对兔子?(利用BigInteger完成)

import java.math.BigInteger;
public class BigIntegerExcise {
	/*题目:故事得从西元1202年说起,话说有一位意大利青年,名叫斐波那契。
			在他的一部著作中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔,
			再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,一年内没有发生死亡,
			问:一对刚出生的兔子,一年内繁殖成多少对兔子?
	  思考:在这个问题里,兔子的对数:
	  
	  						第一个月:1
	  						第二个月:1
	  						第二个月:2
	  						第三个月:3
	  						第四个月:5
	  						第五个月:8
	  						第六个月:13
	  						······
	  	对数的规律是斐波那契数列,如果是第i月,那么数量就是第i-1月和第i-2月数量之和
	 */
	public static void main(String[] args) {
		function();
	}
	public static void function() {
		BigInteger[] bi = new BigInteger[100];
		bi[0] = new BigInteger("1");
		bi[1] = new BigInteger("1");
		for(int i=2 ; i<bi.length ; i++)
			bi[i] = bi[i-1].add(bi[i-2]);
		System.out.println("一年内繁殖成"+bi[11].toString()+"对兔子");
		System.out.println("100个月繁殖"+bi[99].toString()+"对兔子");
	}

}

输出结果:Java——斐波那契数列不死神兔问题(利用BigInteger完成)

相关标签: 笔记