1. 程式人生 > >Java利用BigInteger計算斐波那契數列(不死神兔)

Java利用BigInteger計算斐波那契數列(不死神兔)

package demo01;
/*
 * 1.用迴圈實現不死神兔
	故事得從西元1202年說起,話說有一位義大利青年,名叫斐波那契。
	在他的一部著作中提出了一個有趣的問題:假設一對剛出生的小兔一個月後就能長成大兔,
	再過一個月就能生下一對小兔,並且此後每個月都生一對小兔,一年內沒有發生死亡,
	問:一對剛出生的兔子,一年內繁殖成多少對兔子?
	
	 1 1 2 3 5 8 13 21

2.第100個月繁殖多少對兔子?(利用BigInteger完成)
 */
import java.math.BigInteger;
import java.util.ArrayList;

public class Test05 {
	public static void main(String[] args) {
		ArrayList<BigInteger> arr  = new ArrayList<BigInteger>();
		BigInteger b1 = new BigInteger("1");//初始值為1對
		arr.add(b1);
		BigInteger b2 = new BigInteger("1");//第1個月還是1對
		arr.add(b2);
		int n = 10000;//第N個月
		for (int i = 2; i <= n; i++) {
			BigInteger a = arr.get(i-1);
			BigInteger b = arr.get(i-2);
			BigInteger c = a.add(b);//注意這裡的.add是BigInteger的方法,結果相當於a+b
			arr.add(c);//這裡是ArrayList的.add方法,表示將c加入集合
		}
		System.out.println(arr.get(n));
	}
}