Java利用BigInteger計算斐波那契數列(不死神兔)
阿新 • • 發佈:2019-01-09
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)); } }