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));

    }

}
转自:https://blog.youkuaiyun.com/javae100/article/details/79105238

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值